顶级集合的 HIDClass 硬件 ID
供应商必须使用指定为 供应商硬件 ID 格式的格式 来标识顶级集合。 所有其他 设备 ID 格式保留仅供内部使用。
HID 类驱动程序为开发节点生成的硬件 ID 取决于以下各项:
- 基础传输支持的函数数
- 报表描述符中的顶级集合数
根据这些因素,有 4 类硬件 ID
类型 | 单个 TLC | 多个 TLC |
---|---|---|
Single-Function | Case 1 | Case 2 |
多功能 | 案例 3 | 案例 4 |
案例 1:具有单个 TLC 的单功能设备
使用此硬件 ID 格式的条件:
- 基础传输支持的函数数 = 1 &&
- TLC 数 = 1
硬件 ID 格式:
- HID\Vid_v (4) &Pid_d (4) &Rev_r (4)
- HID\Vid_v (4) &Pid_d (4)
- HID_DEVICE_UP:p (4) _U:u (4)
- HID_DEVICE
案例 2:具有多个 TLC 的单功能设备
使用此硬件 ID 格式的条件:
- 基础传输支持的函数数 = 1 &&
- TLC > 1 的数目
硬件 ID 格式:
- HID\Vid_v (4) &Pid_d (4) &Rev_r (4) &Colb (2)
- HID\Vid_v (4) &Pid_d (4) &Colb (2)
- HID_DEVICE_UP:p (4) _U:u (4) [仅适用于 WINDOWS INF]
- HID_DEVICE [仅适用于 WINDOWS INF]
案例 3:具有单个 TLC 的多功能设备
使用此硬件 ID 格式的条件:
- 基础传输 > 支持的函数数 1 &&
- TLC 数 = 1
硬件 ID 格式:
- HID\Vid_v (4) &Pid_d (4) &Rev_r (4) &MI_z (2)
- HID\Vid_v (4) &Pid_d (4) &MI_z (2)
- HID_DEVICE_UP:p (4) _U:u (4) [仅适用于 WINDOWS INF]
- HID_DEVICE [仅适用于 WINDOWS INF]
案例 4:具有多个 TLC 的多功能设备
使用此硬件 ID 格式的条件:
- 基础传输 > 支持的函数数 1 &&
- TLC > 1 的数目
硬件 ID 格式:
- HID\Vid_v (4) &Pid_d (4) &Rev_r (4) &MI_z (2) &Colb (2)
- HID\Vid_v (4) &Pid_d (4) &MI_z (2) &Colb (2)
- HID_DEVICE_UP:p (4) _U:u (4) [仅适用于 WINDOWS INF]
- HID_DEVICE [仅适用于 WINDOWS INF]
特殊用途硬件 ID
以下是仅供内部使用的硬件 ID (,) Windows 使用它来提供默认系统功能。
设备类型 | 使用情况页 | 使用情况 | 硬件 ID |
---|---|---|---|
指针 | 0x01 | 0x01 | HID_DEVICE_SYSTEM_MOUSE |
鼠标 | 0x01 | 0x02 | HID_DEVICE_SYSTEM_MOUSE |
游戏杆 | 0x01 | 0x04 | HID_DEVICE_SYSTEM_GAME |
游戏板 | 0x01 | 0x05 | HID_DEVICE_SYSTEM_GAME |
Keyboard | 0x01 | 0x06 | HID_DEVICE_SYSTEM_KEYBOARD |
键盘 | 0x01 | 0x07 | HID_DEVICE_SYSTEM_KEYBOARD |
系统控件 | 0x01 | 0x80 | HID_DEVICE_SYSTEM_CONTROL |
使用者音频控件 | 0x0C | 0x01 | HID_DEVICE_SYSTEM_CONSUMER |
重要说明:
- HIDClass 没有生成的兼容 ID
- 供应商第三方 INF 必须仅与硬件 ID 匹配
- 包含 HID_DEVICE_SYSTEM_* 的硬件 ID 是操作系统打开供其使用的“特殊”设备。 供应商提供的 INF 不能匹配这些特殊硬件 ID。
- 供应商提供的第三方 HID 传输微型驱动程序必须提供下面列出的字段,以确保 HIDClass 可以生成适当的硬件 ID。
图例:
字段 | Contains | 十六进制值 | 含义 |
---|---|---|---|
v (4) | 四个十六进制数字 | 0x0000-0xFFFF | 供应商 ID |
d (4) | 四个十六进制数字 | 0x0000-0xFFFF | 产品 ID |
r (4) | 四个十六进制数字 | 0x0000-0xFFFF | 修订号 |
z (2) | 两个十六进制数字 | 0x00-0xFF | 接口号 (仅用于复合 USB 设备。) |
b (2) | 两个十六进制数字 | 0x00-0xFF | 集合编号 (仅用于多 TLC 设备。) |
p (4) | 四个十六进制数字 | 0x0000-0xFFFF | TLC 的使用页码 |
u (4) | 四个十六进制数字 | 0x0000-0xFFFF | TLC 的用法编号 |