IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL (kbdmou.h)

Запрос IOCTL_INTERNAL_KEYBOARD_CONNECT подключает службу Kbdclass к устройству клавиатуры. Kbdclass отправляет этот запрос в стек устройств клавиатуры перед открытием устройства клавиатуры.

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

  • Сохраняет копию структуры CONNECT_DATA (Kbdclass) Kbdclass , которая передается в драйвер фильтра с помощью Kbdclass.
  • Заменяет сведения о подключении драйвера класса собственными сведениями о подключении.
  • Отправляет запрос IOCTL_INTERNAL_KEYBOARD_CONNECT вниз по стеку устройств.
Если запрос не выполнен, Kbfiltr завершает запрос с соответствующим состоянием ошибки.

Kbfiltr предоставляет шаблон для процедуры обратного вызова службы фильтрации, которая может дополнить работу KeyboardClassServiceCallback, подпрограммы обратного вызова службы класса Kbdclass. Обратный вызов службы фильтрации может фильтровать входные данные, передаваемые из входного буфера устройства в очередь данных класса.

Дополнительные сведения о подключении службы Kbdclass см. в следующих разделах:

Подпрограмма обратного вызова службы класса Kbdclass

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

Основной код

IRP_MJ_INTERNAL_DEVICE_CONTROL

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

Элемент Parameters.DeviceIoControl.Type3InputBuffer указывает на структуру CONNECT_DATA , выделенную и заданную Kbdclass.

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

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

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

Элемент Parameters.DeviceIoControl.Type3InputBuffer указывает на структуру CONNECT_DATA , заданную Kbfiltr.

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

Размер структуры CONNECT_DATA .

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

Элемент Information имеет значение 0.

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

STATUS_INVALID_PARAMETER

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

STATUS_SHARING_VIOLATION

Kbfiltr уже подключен (драйвер фильтра поддерживает только один запрос на подключение).

STATUS_SUCCESS

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

Требования

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

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

CONNECT_DATA (Kbdclass)

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

KeyboardClassServiceCallback