IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL (kbdmou.h)
Запрос IOCTL_INTERNAL_KEYBOARD_CONNECT подключает службу Kbdclass к устройству клавиатуры. Kbdclass отправляет этот запрос вниз стек устройства клавиатуры перед открытием устройства клавиатуры.
После получения запроса подключения к клавиатуре Kbfiltr фильтрует запрос подключения следующим образом:
- Сохраняет копию CONNECT_DATA kbdclass (Kbdclass) структуры, передаваемой драйверу фильтра kbdclass
- Заменяет свои собственные сведения о подключении драйвера класса для сведений о подключении
- Отправляет запрос IOCTL_INTERNAL_KEYBOARD_CONNECT вниз стеку устройств
Kbfiltr предоставляет шаблон для подпрограммы обратного вызова службы фильтра, которая может дополнить операцию KeyboardClassServiceCallback, подпрограмму обратного вызова класса Kbdclass. Обратный вызов службы фильтров может фильтровать входные данные, передаваемые из входного буфера устройства в очередь данных класса.
Дополнительные сведения о подключении службы Kbdclass см. в следующих разделах:
Основной код
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) |