Поиск и открытие коллекции HID
В этой статье описывается, как приложения в пользовательском режиме и драйверы в режиме ядра находят и открывают коллекцию HID верхнего уровня.
Приложение в режиме пользователя
Microsoft Windows предоставляет процедуры установки устройств (функции SetupDiXxx ) для поиска и идентификации устройств HIDClass. Windows предоставляет другие функции Win32 для инициализации и подключения к коллекции HID.
После загрузки приложения в пользовательском режиме выполняется следующая последовательность операций:
Вызывает HidD_GetHidGuid для получения системного GUID для устройств HIDClass.
Вызывает SetupDiGetClassDevs для получения дескриптора непрозрачного набора сведений об устройстве, описывающего интерфейсы устройств, поддерживаемые всеми коллекциями HID, установленными в настоящее время в системе. Приложение должно указать DIGCF_PRESENT и DIGCF_DEVICEINTERFACE в параметре Flags , который передается в SetupDiGetClassDevs.
Вызывает SetupDiEnumDeviceInterfaces многократно, чтобы получить все доступные сведения о интерфейсе.
Вызывает SetupDiGetDeviceInterfaceDetail для форматирования сведений об интерфейсе для каждой коллекции в виде структуры SP_INTERFACE_DEVICE_DETAIL_DATA. Элемент DevicePath этой структуры содержит имя пользовательского режима, которое приложение использует с функцией Win32 CreateFile для получения дескриптора файла в коллекцию HID.
Вызывает CreateFile , чтобы получить дескриптор файла в коллекцию HID.
Драйвер режима ядра
Если драйвер в режиме ядра является функцией или драйвером фильтра, он присоединяет объект устройства к стеку устройств коллекции HID. Драйвер должен использовать только запрос на создание для открытия устройства.
Если драйвер не является функцией или драйвером фильтра, он обычно использует самонастраивающийся уведомления для поиска коллекции. Когда драйвер находит коллекцию, он использует запрос на создание для открытия коллекции.