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 предоставляет шаблон для процедуры обратного вызова службы фильтрации, которая может дополнить работу 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 имеет значение 0.
Для элемента Status задано одно из следующих значений:
STATUS_INVALID_PARAMETER
Parameters.DeviceIoControl.InputBufferLength меньше размера структуры CONNECT_DATA в байтах.
STATUS_SHARING_VIOLATION
Kbfiltr уже подключен (драйвер фильтра поддерживает только один запрос на подключение).
STATUS_SUCCESS
Запрос успешно выполнен.
Требования
Требование | Значение |
---|---|
Заголовок | kbdmou.h (включая Kbdmou.h) |