IOCTL_INTERNAL_I8042_HOOK_KEYBOARD control code
The IOCTL_INTERNAL_I8042_HOOK_KEYBOARD request adds the following callback routines to I8042prt's operation:
An optional initialization callback that I8042prt calls when it initializes a keyboard
An optional callback into the I8042prt keyboard ISR
These optional callbacks are added by an upper-level keyboard filter driver.
After I8042prt receives an IOCTL_INTERNAL_KEYBOARD_CONNECT request, it sends a synchronous IOCTL_INTERNAL_I8042_HOOK_KEYBOARD request to the top of the keyboard device stack. When the upper-level filter driver receives this request, the filter driver sets the IsrRoutine member and the InitializationRoutine member of the INTERNAL_I8042_HOOK_KEYBOARD structure that is passed with the request.
Parameters.DeviceIoControl.Type3InputBuffer points to an INTERNAL_I8042_HOOK_KEYBOARD structure. This structure includes:
The InitializationRoutine member that points to a routine that is called by the I8042prt keyboard initialization service routine
The IsrRoutine member that points to a routine that is called by the I8042prt keyboard ISR
The Status member is set to one of the following values:
The request completed successfully.
Parameters.DeviceIoControl.Type3InputBuffer is less than the size, in bytes, of an INTERNAL_I8042_HOOK_KEYBOARD structure.