Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Windows HID Device Name Format

There are various ways to retrieve the Windows "Device Name" of a HID device, GetRawInputDeviceInfo with RIDI_DEVICENAME being one way to do it.

Given the example name:

\?\HID#VID_FEED&PID_DEAD#6&3559c8ea&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}

I'm wondering if there is any documentation whatsoever on what is what in this string?

\?\HID#VID_AAAA&PID_BBBB#C&DDDDDD&E&FFFF#{GUID}

So the obvious ones are A(VID), B(PID) and the GUID on the end. What I'm wondering is what EXACTLY are C, D, E and F?

It seems that C and D are unique even if you plug in two of the exact same HID devices which is great for my problem, but I'd feel more comfortable if I could know exactly how this is determined on a per OS basis, or at least that it follows some known format.

I have been googling like a madman trying to figure this out, am I missing something obvious?

Thanks in advance

like image 268
tonyg Avatar asked Feb 06 '14 22:02

tonyg


People also ask

What is a i2c HID device?

The HID I²C driver enables devices and system manufacturers to reduce the total number of drivers they have to develop to support common device types like keyboards, touchpads, touch screens, sensors, and so on. The HID I²C driver is available on all client SKUs of Windows and is included in WinPE.

What is an example of HID?

An HID takes input from or provides output to humans. Examples of devices include keyboards, pointing devices (mice, touchscreens, etc.), and gamepads.

How do I find my HID number?

Use *67 to hide your phone number This trick works for smartphones and landlines.

What is a HID compliant device?

Universal Serial Bus devices are used to connect various components to a computer. A HID (Human Interface Device) compliant USB follows a specific protocol for communication that allows it to be used with virtually any system.


1 Answers

According to a similar MSDN post, the value represents a unique device instance ID:

the device instance ID is unique and constant for the physical location the device is plugged into, but it is also opaque and should not be parsed. that means it can be used for string comparison, but not for interpretation.

like image 58
flashk Avatar answered Nov 14 '22 14:11

flashk