IOCTL_KEYBOARD_QUERY_ATTRIBUTES IOCTL

The IOCTL_KEYBOARD_QUERY_ATTRIBUTES request returns information about the keyboard attributes.

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.

For more information about this request, see the description of this request in I8042prt Keyboard Internal Device Control Requests.

Major Code

IRP_MJ_DEVICE_CONTROL

Input Buffer

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_ATTRIBUTES structure.

Output Buffer

AssociatedIrp.SystemBuffer points to a client-allocated buffer that the lower-level drivers use to output a KEYBOARD_ATTRIBUTES structure.

Output Buffer Length

The size of a KEYBOARD_ATTRIBUTES structure.

Input / Output Buffer

Input / Output Buffer Length

Status Block

If the request is successful, the Information member is set to the size, in bytes, of a KEYBOARD_ATTRIBUTES structure, otherwise Information is set to zero.

The Status member is set to one of the following values:

Requirements

   
Header ntddkbd.h (include Ntddkbd.h)

See Also

IOCTL_KEYBOARD_QUERY_INDICATORS

IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION

IOCTL_KEYBOARD_QUERY_TYPEMATIC

IOCTL_KEYBOARD_SET_INDICATORS

IOCTL_KEYBOARD_SET_TYPEMATIC

KEYBOARD_ATTRIBUTES

KEYBOARD_UNIT_ID_PARAMETER