HIDClass Hardware IDs for Top-Level Collections

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:

  1. Number of functions supported by the underlying transport
  2. Number of Top Level Collections in the Report Descriptor

Based on these factors, there are 4 categories of hardware IDs

Single TLCMultiple TLC
Single-FunctionCase 1Case 2
Multi-FunctionCase 3Case 4

 

Case 1: Single-function device with single TLC

Condition under which this Hardware ID format is used:

  1. Number of functions supported by the underlying transport = 1 &&
  2. 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:

  1. Number of functions supported by the underlying transport = 1 &&
  2. 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:

  1. Number of functions supported by the underlying transport > 1 &&
  2. 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:

  1. Number of functions supported by the underlying transport > 1 &&
  2. 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 TypeUsage PageUsageHardware 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:

FieldContainsHexadecimal ValueMeaning
v(4)four hex digits0x0000-0xFFFFVendor ID
d(4)four hex digits0x0000-0xFFFFProduct ID
r(4)four hex digits0x0000-0xFFFFRevision Number
z(2)two hex digits0x00-0xFFInterface number (only used with composite USB devices.)
b(2)two hex digits0x00-0xFFCollection number (only used with multiple-TLC devices.)
p(4)four hex digits0x0000-0xFFFFUsage Page Number for TLC
u(4)four hex digits0x0000-0xFFFFUsage Number of TLC

 

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft