The HardwareIDList element specifies one or more hardware identification strings for the device. Each string is specified by a HardwareID XML element. The operating system first queries the device for its identification string and then loads the device metadata package that has a HardwareID value that matches this string.
Each HardwareID element value must be a hardware ID that is unique to the device. You must not use the compatible ID for the device, such as USB Class ID, 'HID_DEVICE', or 'HID_DEVICE_SYSTEM_KEYBOARD'.
You must ensure that each HardwareID element that is specified in the metadata package has a value that accurately correlates to the hardware ID that the physical device reports. For example, if a hardware ID is reused across a family of physical devices, the device metadata package that specifies that HardwareID element value is associated with the entire family of devices.
This section includes the following topics on best practices for specifying hardware IDs for certain types of devices:
For more information about the format requirements of the HardwareID XML element, see HardwareID.