Call with IOCTL_KEYBOARD_QUERY_INDICATORS always result ledflags with zero

Why does IOCTL_KEYBOARD_QUERY_INDICATORS always result “0” at leds.LedFlags?
The function returns SUCCESS and the leds.UnitId is correctly set after the call.

I do the following:
KEYBOARD_INDICATOR_PARAMETERS leds = { 0 };
WDF_MEMORY_DESCRIPTOR_INIT_BUFFER(
&outputDescriptor,
(PVOID)&leds,
sizeof(KEYBOARD_INDICATOR_PARAMETERS)
);
status = WdfIoTargetSendIoctlSynchronously(
WdfDeviceGetIoTarget(destdevice),
NULL,
IOCTL_KEYBOARD_QUERY_INDICATORS,
NULL,
&outputDescriptor,
NULL,
NULL
);

The unitid is the least relevant value in that structure. It is not used anywhere in the input subsystem. According to the docs you need to set the input buffer length to the size of the struct as well. I don’t remember if the keyboard port driver or kbdclass maintained the state for the led flags, an older wdk which contains the pnpi8042 and kbdclass samples will quickly tell you where the state is kept.