The IOCTL_KEYBOARD_QUERY_INDICATORS request returns information about the keyboard indicators.
Kbdclass copies the current stack location, sets the MajorFunction member of the new stack location to IRP_MJ_INTERNAL_DEVICE_CONTROL, and sends this request down the device stack.
The Parameters.DeviceIoControl.InputBufferLength member is set to zero or a value greater than or equal to the size, in bytes, of a KEYBOARD_UNIT_ID_PARAMETER. A value of zero specifies a default unit ID of zero.
The AssociatedIrp.SystemBuffer member points to a client-allocated buffer that is used to input and output information. On input, AssociatedIrp.SystemBuffer points to a KEYBOARD_UNIT_ID_PARAMETER structure. The client sets the UnitId member of the input structure.
The Parameters.DeviceIoControl.OutputBufferLength member specifies the size, in bytes, of the output buffer, which must be greater than or equal to the size, in bytes, of a KEYBOARD_INDICATOR_PARAMETERS structure.
Input Buffer Length
The size of a KEYBOARD_UNIT_ID_PARAMETER structure.
AssociatedIrp.SystemBuffer points to a client-allocated buffer that the lower-level drivers use to output a KEYBOARD_INDICATOR_PARAMETERS structure.
Output Buffer Length
The size of a KEYBOARD_INDICATOR_PARAMETERS structure.
Input / Output Buffer
Input / Output Buffer Length
If the request is successful, the Information member is set to the size, in bytes, of a KEYBOARD_INDICATOR_PARAMETERS structure.
The Status member is set to one the following values:
|Header||ntddkbd.h (include Ntddkbd.h)|