HID 传输概述

Windows 中支持的 HID 传输

运输 内置微型驱动程序 备注
USB Hidusb.sys 在可追溯到 Windows 2000 的 Windows 操作系统上提供了对 USB HID 1.11+ 的支持。
蓝牙 Hidbth.sys 在可追溯到 Windows Vista 的 Windows 操作系统上提供对蓝牙 HID 1.1+ 的支持。
蓝牙 LE HidBthLE.dll Windows 8 引入了对通过蓝牙 LE 的 HID 的支持。
I2C Hidi2c.sys Windows 8 引入了对 I2C 上的 HID 的支持。
GPIO Hidinterrupt.sys Windows 10 引入了对常规用途 I/O (GPIO) 按钮的支持。
SPI HidSpi.sys Windows 11 引入了对串行外围接口(SPI)HID 的支持。

Microsoft建议将包含的驱动程序用于上表中所列的传输。

如果设备需要 USB、蓝牙、蓝牙 LE 或 I2C 以外的传输,建议使用传输微型驱动程序,如传输微型驱动程序中所述

HID 传输限制

  • 报表描述符长度

    传输微型驱动程序在HID_DESCRIPTOR结构中将报告描述符提交到 Hidclass。 无论传输协议为其设备传输 HID 报表描述符所定义的大小如何,在 Hidclass 和 HID 微型驱动程序之间的通信期间,实际报告描述符大小都会受到限制。

  • 报表描述符中的 TLC

    Hidclass/Hidparse 驱动程序对知道报表描述符中的 TLC 数。 HID 微型端口驱动程序没有该信息。 每个 TLC 至少有 2 个字节可启动集合和 1 个字节以结束集合。

  • 输入/输出/功能报告长度

    Hidclass/Hidparse 驱动程序对定义 HID 输入、输出和功能报告长度。 限制为 8 KB(减 1 位)。 即使 HID 微型驱动程序可以请求传输超过 8 KB 的报表,也只会成功传输小于 8 KB 的报表。

内置微型驱动程序 报表描述符长度 一个报表描述符中的 TLC 输入/输出/功能报告长度
Hidclass/Hidparse 65535 字节 21845 8 KB - 1 位
Hidusb 65535 字节 空值 64 KB
Hidbth 65535 字节 空值 64 KB
HidBthLE 65535 字节 空值 64 KB
Hidi2c 65535 字节 空值 64 KB
Hidspi 65535 字节 空值 64 KB