IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL (ntdd8042.h)

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

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

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

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

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

Процедуры обратного вызова I8042prt

Процедуры обратного вызова Kbfiltr

Основной код

IRP_MJ_INTERNAL_DEVICE_CONTROL

Входной буфер

Parameters.DeviceIoControl.Type3InputBuffer указывает на структуру INTERNAL_I8042_HOOK_KEYBOARD. Эта структура включает следующие элементы:

Длина входного буфера

Член Parameters.DeviceIoControl.InputBufferLength имеет значение, большее или равное размеру INTERNAL_I8042_HOOK_KEYBOARD структуры в байтах.

Выходной буфер

None

Длина выходного буфера

None

Блок состояния

Для элемента Status задано одно из следующих значений:

STATUS_INVALID_PARAMETER

Parameters.DeviceIoControl.InputBufferLength меньше размера структуры INTERNAL_I8042_HOOK_KEYBOARD в байтах.

STATUS_SUCCESS

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

Требования

Требование Значение
Заголовок ntdd8042.h (включая Ntdd8042.h)

См. также раздел

INTERNAL_I8042_HOOK_KEYBOARD

IOCTL_INTERNAL_KEYBOARD_CONNECT