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


Открытие коллекций 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

См. также