Поделиться через


IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL (ntdd8042.h)

Запрос IOCTL_INTERNAL_I8042_HOOK_KEYBOARD выполняет следующие действия:

  • Добавляет подпрограмму обратного вызова инициализации инициализации клавиатуры I8042prt
  • Добавляет подпрограмму обратного вызова ISR на клавиатуру I8042prt
Обратные вызовы инициализации и ISR являются необязательными и предоставляются драйвером фильтра верхнего уровня для устройства клавиатуры в стиле PS/2.

После получения запроса IOCTL_INTERNAL_KEYBOARD_CONNECT I8042prt он отправляет синхронный запрос IOCTL_INTERNAL_I8042_HOOK_KEYBOARD в верхней части стека устройства клавиатуры.

После того как Kbfiltr получит запрос клавиатуры перехватчика, Kbfiltr фильтрует запрос следующим образом:

  • Сохраняет сведения верхнего уровня, передаваемые в Kbfiltr, которая включает контекст объекта устройства верхнего уровня, указатель на обратный вызов инициализации и указатель на обратный вызов ISR.
  • Заменяет сведения верхнего уровня собственными
  • Сохраняет контекст I8042prt и указателей на обратные вызовы, которые может использовать обратный вызов ISR Kbfiltr
Дополнительные сведения об этом запросе и обратных вызовах см. в следующих разделах:

подпрограммы обратного вызова I8042prt

подпрограммы обратного вызова kbfiltr

Основной код

IRP_MJ_INTERNAL_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

Запрос успешно завершен.

Требования

Требование Ценность
заголовка ntdd8042.h (include Ntdd8042.h)

См. также

INTERNAL_I8042_HOOK_KEYBOARD

IOCTL_INTERNAL_KEYBOARD_CONNECT