Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This section specifies the hardware IDs that the HID class driver generates for top-level collections.
Vendors must use the formats that are designated as vendor hardware ID formats to identify top-level collections. All other device ID formats are reserved for internal use only.
The hardware IDs that the HID class driver generates for a devnode depends on the following:
- Number of functions supported by the underlying transport
- Number of Top Level Collections in the Report Descriptor
Based on these factors, there are 4 categories of hardware IDs
Type | Single TLC | Multiple TLC |
---|---|---|
Single-Function | Case 1 | Case 2 |
Multi-Function | Case 3 | Case 4 |
Case 1: Single-function device with single TLC
Condition under which this Hardware ID format is used:
- Number of functions supported by the underlying transport = 1 &&
- Number of TLC = 1
Hardware ID Format:
- 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
Case 2: Single-function device with multiple TLC
Condition under which this Hardware ID format is used:
- Number of functions supported by the underlying transport = 1 &&
- Number of TLC > 1
Hardware ID Format:
- 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) [RESERVED FOR WINDOWS INFs ONLY]
- HID_DEVICE [RESERVED FOR WINDOWS INFs ONLY]
Case 3: Multi-function device with single TLC
Condition under which this Hardware ID format is used:
- Number of functions supported by the underlying transport > 1 &&
- Number of TLC = 1
Hardware ID Format:
- 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) [RESERVED FOR WINDOWS INFs ONLY]
- HID_DEVICE [RESERVED FOR WINDOWS INFs ONLY]
Case 4: Multi-function device with multiple TLC
Condition under which this Hardware ID format is used:
- Number of functions supported by the underlying transport > 1 &&
- Number of TLC > 1
Hardware ID Format:
- 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) [RESERVED FOR WINDOWS INFs ONLY]
- HID_DEVICE [RESERVED FOR WINDOWS INFs ONLY]
Special purpose hardware ID
The following are hardware IDs (for internal use only) that Windows uses to provide default system functionality.
Device Type | Usage Page | Usage | Hardware ID |
---|---|---|---|
Pointer | 0x01 | 0x01 | HID_DEVICE_SYSTEM_MOUSE |
Mouse | 0x01 | 0x02 | HID_DEVICE_SYSTEM_MOUSE |
Joystick | 0x01 | 0x04 | HID_DEVICE_SYSTEM_GAME |
Game pad | 0x01 | 0x05 | HID_DEVICE_SYSTEM_GAME |
Keyboard | 0x01 | 0x06 | HID_DEVICE_SYSTEM_KEYBOARD |
Keypad | 0x01 | 0x07 | HID_DEVICE_SYSTEM_KEYBOARD |
System control | 0x01 | 0x80 | HID_DEVICE_SYSTEM_CONTROL |
Consumer audio control | 0x0C | 0x01 | HID_DEVICE_SYSTEM_CONSUMER |
Important notes:
- There are no compatible IDs generated by HIDClass
- Vendor 3rd party INFs must only match against the hardware IDs
- Hardware IDs that contain HID_DEVICE_SYSTEM_* are "special" devices that the operating system opens for its use. Vendor provided INF must not match on these special hardware IDs.
- Vendor provided 3rd party HID transport minidrivers must provided the fields listed below to ensure that HIDClass can generate the appropriate hardware IDs.
Legend:
Field | Contains | Hexadecimal Value | Meaning |
---|---|---|---|
v(4) | four hex digits | 0x0000-0xFFFF | Vendor ID |
d(4) | four hex digits | 0x0000-0xFFFF | Product ID |
r(4) | four hex digits | 0x0000-0xFFFF | Revision Number |
z(2) | two hex digits | 0x00-0xFF | Interface number (only used with composite USB devices.) |
b(2) | two hex digits | 0x00-0xFF | Collection number (only used with multiple-TLC devices.) |
p(4) | four hex digits | 0x0000-0xFFFF | Usage Page Number for TLC |
u(4) | four hex digits | 0x0000-0xFFFF | Usage Number of TLC |