IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL (ntdd8042.h)

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD请求执行以下操作:

  • 将初始化回调例程添加到 I8042prt 键盘初始化例程
  • 将 ISR 回调例程添加到 I8042prt 键盘 ISR
初始化和 ISR 回调是可选的,由 PS/2 样式键盘设备的高级筛选器驱动程序提供。

I8042prt 收到 IOCTL_INTERNAL_KEYBOARD_CONNECT 请求后,它会将同步IOCTL_INTERNAL_I8042_HOOK_KEYBOARD请求发送到键盘设备堆栈顶部。

在 Kbfiltr 收到挂钩键盘请求后,Kbfiltr 会按以下方式筛选请求:

  • 保存传递给 Kbfiltr 的上层信息,其中包括上层设备对象的上下文、指向初始化回调的指针和指向 ISR 回调的指针
  • 将上层信息替换为自己的信息
  • 保存 I8042prt 的上下文和指向 Kbfiltr ISR 回调可以使用的回调的指针
有关此请求和回调的详细信息,请参阅以下主题:

I8042prt 回调例程

Kbfiltr 回调例程

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

Parameters.DeviceIoControl.Type3InputBuffer 指向INTERNAL_I8042_HOOK_KEYBOARD结构。 此结构包括以下成员:

输入缓冲区长度

Parameters.DeviceIoControl.InputBufferLength 成员设置为大于或等于INTERNAL_I8042_HOOK_KEYBOARD结构的大小(以字节为单位)的值。

输出缓冲区

输出缓冲区长度

状态块

状态成员设置为以下值之一:

STATUS_INVALID_PARAMETER

Parameters.DeviceIoControl.InputBufferLength 小于INTERNAL_I8042_HOOK_KEYBOARD结构的大小(以字节为单位)。

STATUS_SUCCESS

请求成功完成。

要求

   
Header ntdd8042.h (包括 Ntdd8042.h)

另请参阅

INTERNAL_I8042_HOOK_KEYBOARD

IOCTL_INTERNAL_KEYBOARD_CONNECT