Обзор транспорта HID

Поддерживаемые в Windows транспортные протоколы HID

Транспорт Встроенный минидрайвер Примечания.
USB Hidusb.sys Поддержка USB HID 1.11+ предоставляется в операционных системах Windows, начиная с Windows 2000.
Bluetooth Hidbth.sys Поддержка Bluetooth HID 1.1+ предоставляется в операционных системах Windows, начиная с Windows Vista.
Bluetooth LE HidBthLE.dll Windows 8 предоставляет поддержку HID через Bluetooth LE.
I2C Hidi2c.sys Windows 8 предоставляет поддержку HID по протоколу I2C.
GPIO Hidinterrupt.sys Windows 10 предоставляет поддержку кнопок ввода-вывода общего назначения (GPIO).
SPI HidSpi.sys Windows 11 предоставляет поддержку HID через последовательный периферийный интерфейс (SPI).

Корпорация Майкрософт рекомендует использовать встроенные драйверы для транспорта, перечисленного в предыдущей таблице.

Если для устройства требуется транспорт, отличный от USB, Bluetooth, Bluetooth LE или I2C, рекомендуется использовать минипорт-драйвер, как описано в транспортных минидрайверах.

Ограничения транспортного протокола HID

  • Длина дескриптора отчета

    Транспортный минидрайвер отправляет дескрипторы отчета в структуре HID_DESCRIPTOR в Hidclass. Независимо от размера, определенного транспортным протоколом для передачи дескриптора отчета HID устройствам, фактический размер дескриптора отчета ограничен во время обмена данными между Hidclass и HID-минидрайверами.

  • TLCs в дескрипторе отчета

    Пара драйверов Hidclass/Hidparse учитывает количество TLCs в отчётном дескрипторе. Драйверы минипортов HID не имеют этой информации. Каждый TLC имеет как минимум 2 байта, чтобы начать сбор и 1 байт, чтобы завершить сбор.

  • Длина отчета входных, выходных данных и отчета о функциях

    Пара драйверов Hidclass/Hidparse определяет длину входных, выходных и функциональных отчетов HID. Ограничение составляет 8 КБ (минус 1 бит). Даже если минидрайвер HID может запросить передачу более 8 КБ для отчета, только отчеты меньше 8 КБ успешно передаются.

Встроенный минидрайвер Длина дескриптора отчета TLCs в дескрипторе одного отчета Длина отчета о входных данных/выходных данных/свойствах
Hidclass/Hidparse 65535 байт 21845 8 КБ — 1 бит
Hidusb 65535 байт Н/П 64 КБ
Hidbth 65535 байт Н/П 64 КБ
HidBthLE 65535 байт Н/П 64 КБ
Хиди2c 65535 байт Не применимо 64 КБ
Hidspi 65535 байт Н/П 64 КБ
  • USB Generic HID Test в Windows Hardware Lab Kit (HLK) охватывает драйверы HidUsb и HidClass. Нет теста HLK для сторонних мини-драйверов HID.