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


Открытие коллекций HID

В этой статье описывается, как клиент HID может взаимодействовать с драйвером класса HID (HIDClass) для работы коллекций HID устройства.

Клиенты HID могут работать в следующих режимах:

  • Приложение/Драйвер в режиме использования
  • Драйвер режима ядра

В следующих разделах описано, как клиент HID может взаимодействовать с HIDClass с помощью любого режима в предыдущем списке.

В этом разделе описывается, как приложения в пользовательском режиме и драйверы режима ядра работают с коллекциями HID.

Как правило, приложение в пользовательском режиме выполняет следующие действия:

  • Вызывает функции установки устройства (SetupDiXxx функции), чтобы найти и определить коллекцию HID.

  • Вызывает CreateFile, чтобы открыть файл в коллекции HID.

  • Вызывает подпрограммы поддержки **HidD_**XXX HID для получения предварительно подготовленных данных и сведений о коллекции HID.

  • Вызывает ReadFile для чтения входных отчетов и WriteFile для отправки выходных отчетов.

  • Вызывает подпрограммы поддержки **HidP_**Xxx для интерпретации отчетов HID.

Как правило, драйвер режима ядра выполняет следующие действия:

  • Находит и идентифицирует коллекцию HID

    Если драйвер является функцией или драйвером фильтра, он уже подключен к стеку устройств коллекции. Однако если драйвер не подключен к стеку устройств коллекции, драйвер может использовать уведомление Plug and Play.

  • Использует запрос IRP_MJ_CREATE для открытия коллекции HID

  • Использует запросы IOCTL_HID_Xxxx для получения предварительно подготовленных данных коллекции HID и сведений о коллекции HID

  • Использует запросы IRP_MJ_READ для чтения входных отчетов и IRP_MJ_WRITE запросов для отправки выходных отчетов

  • Вызовы поддерживающих рутин **HidP_**Xxx для интерпретации отчетов HID

См. также