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


IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL (kbdmou.h)

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

После получения запроса подключения к клавиатуре 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 имеет значение нулю.

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

STATUS_INVALID_PARAMETER

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

STATUS_SHARING_VIOLATION

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

STATUS_SUCCESS

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

Требования

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

См. также

CONNECT_DATA (Kbdclass)

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

KeyboardClassServiceCallback