UID | title | description | old-location | tech.root | ms.date | keywords | ms.keywords | req.header | req.include-header | req.target-type | req.target-min-winverclnt | req.target-min-winversvr | req.kmdf-ver | req.umdf-ver | req.ddi-compliance | req.unicode-ansi | req.idl | req.max-support | req.namespace | req.assembly | req.type-library | req.lib | req.dll | req.irql | targetos | req.typenames | f1_keywords | topic_type | api_type | api_location | api_name | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
NI:ntdd8042.IOCTL_INTERNAL_I8042_HOOK_KEYBOARD |
IOCTL_INTERNAL_I8042_HOOK_KEYBOARD (ntdd8042.h) |
The IOCTL_INTERNAL_I8042_HOOK_KEYBOARD request does the following:Adds an initialization callback routine to the I8042prt keyboard initialization routineAdds an ISR callback routine to the I8042prt keyboard ISRThe initialization and ISR callbacks are optional and are provided by an upper-level filter driver for a PS/2-style keyboard device.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.After Kbfiltr receives the hook keyboard request, Kbfiltr filters the request in the following way:Saves the upper-level information passed to Kbfiltr, which includes the context of an upper-level device object, a pointer to an initialization callback, and a pointer to an ISR callbackReplaces the upper-level information with its ownSaves the context of I8042prt and pointers to callbacks that the Kbfiltr ISR callback can useFor more information about this request and the callbacks, see the following topics:I8042prt Callback RoutinesKbfiltr Callback Routines. |
hid\ioctl_internal_i8042_hook_keyboard.htm |
hid |
04/30/2018 |
|
IOCTL_INTERNAL_I8042_HOOK_KEYBOARD, IOCTL_INTERNAL_I8042_HOOK_KEYBOARD control, IOCTL_INTERNAL_I8042_HOOK_KEYBOARD control code [Human Input Devices], hid.ioctl_internal_i8042_hook_keyboard, kfilref_d213e6a4-db1b-4fed-8cd9-503703ee59dd.xml, ntdd8042/IOCTL_INTERNAL_I8042_HOOK_KEYBOARD |
ntdd8042.h |
Ntdd8042.h |
Windows |
Windows |
|
|
|
|
|
The IOCTL_INTERNAL_I8042_HOOK_KEYBOARD request does the following:
- Adds an initialization callback routine to the I8042prt keyboard initialization routine
- Adds an ISR callback routine to the I8042prt keyboard ISR
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.
After Kbfiltr receives the hook keyboard request, Kbfiltr filters the request in the following way:
- Saves the upper-level information passed to Kbfiltr, which includes the context of an upper-level device object, a pointer to an initialization callback, and a pointer to an ISR callback
- Replaces the upper-level information with its own
- Saves the context of I8042prt and pointers to callbacks that the Kbfiltr ISR callback can use
IRP_MJ_INTERNAL_DEVICE_CONTROL
The Parameters.DeviceIoControl.Type3InputBuffer points to an INTERNAL_I8042_HOOK_KEYBOARD structure. This structure includes the following members:
The Parameters.DeviceIoControl.InputBufferLength member is set to a value that is greater than or equal to the size, in bytes, of an INTERNAL_I8042_HOOK_KEYBOARD structure.
None
None
The Status member is set to one of the following values:
STATUS_INVALID_PARAMETER
Parameters.DeviceIoControl.InputBufferLength is less than the size, in bytes, of an INTERNAL_I8042_HOOK_KEYBOARD structure.
STATUS_SUCCESS
The request completed successfully.
Pointer to an optional callback that the I8042prt keyboard initialization routine calls when it initializes a keyboard device.
Pointer to an optional callback that is called by the I8042prt keyboard ISR.