Kbdclass IOCTLs

This section describes the device control requests that Kbdclass supports. It describes the following requests:

IOCTL_KEYBOARD_QUERY_ATTRIBUTES

IOCTL_KEYBOARD_QUERY_INDICATORS

IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION

IOCTL_KEYBOARD_QUERY_TYPEMATIC

IOCTL_KEYBOARD_SET_INDICATORS

IOCTL_KEYBOARD_SET_TYPEMATIC

Kbdclass changes these device control requests into internal device control request and sends the changed request down the device stack.

Kbdclass also sends a number of other device control requests for Plug and Play devices down the device stack without changing the request to an internal device control request. For a list of these requests, see IOCTL_Xxx.

Filter drivers between the class and function drivers can filter device control requests either before they send the request down the device stack or after the lower-level drivers complete the request.

If Kbdclass does not support the request, it completes the request with a status of STATUS_INVALID_DEVICE_REQUEST.

Input and Output

The Parameters.DeviceIoControlCode.IoControlCode member specifies the control code.

The AssociatedIrp->SystemBuffer member is used for request-specific input and output.

The Parameters.DeviceIoControl.InputBufferLength member is used to input the request-specific size of the input buffer.

The Parameters.DeviceIoControl.OutputBufferLength member is used to input the request-specific size of the output buffer.

I/O Status Block

Usually, the Information member is set to zero or to the number of bytes returned in the output buffer. Information can also return request-specific values or pointers.

The Status member is set to a request-specific value. Status is set to STATUS_INVALID_DEVICE_REQUEST if Kbdclass does not support the request.

 

 

Send comments about this topic to Microsoft

Show: