Skip to content

Latest commit

 

History

History
153 lines (101 loc) · 5.28 KB

ni-ntdd8042-ioctl_internal_i8042_hook_keyboard.md

File metadata and controls

153 lines (101 loc) · 5.28 KB
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
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
IOCTL_INTERNAL_I8042_HOOK_KEYBOARD
ntdd8042/IOCTL_INTERNAL_I8042_HOOK_KEYBOARD
APIRef
kbSyntax
HeaderDef
ntdd8042.h
IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL

-description

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
The 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 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
For more information about this request and the callbacks, see the following topics:

I8042prt Callback Routines

Kbfiltr Callback Routines

-ioctlparameters

-ioctl-major-code

IRP_MJ_INTERNAL_DEVICE_CONTROL

-input-buffer

The Parameters.DeviceIoControl.Type3InputBuffer points to an INTERNAL_I8042_HOOK_KEYBOARD structure. This structure includes the following members:

-input-buffer-length

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.

-output-buffer

None

-output-buffer-length

None

-in-out-buffer

-inout-buffer-length

-status-block

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.

-InitializationRoutine

Pointer to an optional callback that the I8042prt keyboard initialization routine calls when it initializes a keyboard device.

-IsrRoutine

Pointer to an optional callback that is called by the I8042prt keyboard ISR.

-see-also

INTERNAL_I8042_HOOK_KEYBOARD

IOCTL_INTERNAL_KEYBOARD_CONNECT