Открытие коллекций HID
В этой статье описывается, как клиент HID может взаимодействовать с драйвером класса HID (HIDClass) для работы коллекций HID устройства.
Клиенты HID могут работать в следующих режимах:
- Использование приложения и драйвера в режиме использования
- Драйвер режима ядра
В следующих разделах описано, как клиент HID может взаимодействовать с HIDClass с помощью любого режима в предыдущем списке.
В этом разделе описывается, как приложения в пользовательском режиме и драйверы режима ядра работают с коллекциями HID.
Как правило, приложение в пользовательском режиме выполняет следующие действия:
Вызывает функции установки устройства (функции SetupDiXxx), чтобы найти и определить коллекцию HID.
Вызывает CreateFile, чтобы открыть файл в коллекции HID.
Вызывает подпрограммы поддержки **HidD_**XXX HID для получения предварительно подготовленных данных коллекции HID и сведений о коллекции HID.
Вызывает ReadFile для чтения входных отчетов и WriteFile для отправки выходных отчетов.
Вызовы **HidP_**XXX HID поддерживают подпрограммы для интерпретации отчетов HID.
Как правило, драйвер режима ядра выполняет следующие действия:
Находит и идентифицирует коллекцию HID
Если драйвер является функцией или драйвером фильтра, он уже подключен к стеку устройств коллекции. Однако если драйвер не подключен к стеку устройств коллекции, драйвер может использовать самонастраивающийся уведомления.
Использует запрос IRP_MJ_CREATE для открытия коллекции HID
Использует запросы IOCTL_HID_Xxxx для получения предварительно подготовленных данных коллекции HID и сведений о коллекции HID
Использует запросы IRP_MJ_READ для чтения входных отчетов и IRP_MJ_WRITE запросов для отправки выходных отчетов
Вызовы **HidP_**XXX HID поддерживают подпрограммы для интерпретации отчетов HID