todbot / win-hid-dump

Sort of a Windows version of `usbhid-dump` to show HID Report Descriptors
53 stars 10 forks source link

Issues with HID devices #2

Open mcuee opened 3 years ago

mcuee commented 3 years ago

It does not seem to work with Logitech USB Receiver.

/c/work/hid/winhiddump-0.2/winhiddump
$ ./winhiddump.exe
WinHIDdump:
044E:1212:  -
PATH:\\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  01  09  02  A1  01  85  06  09  01  A1  00  05  09  19  01
  29  03  15  00  25  01  35  00  45  01  65  00  55  00  75  01
  95  03  81  02  95  05  81  03  05  01  09  30  26  00  02  45
  00  75  10  95  01  81  06  09  31  81  06  C1  00  C1  00
  (63 bytes)
046D:C534: Logitech - USB Receiver
PATH:\\?\hid#vid_046d&pid_c534&mi_01&col03#7&1ebb799e&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}

Unhandled Exception: System.NotSupportedException: Unable to reconstruct the report descriptor.
   at HidSharp.Platform.Windows.WinHidDevice.GetRawReportDescriptor()
   at winhiddump.Program.Main(String[] args)
mcuee commented 3 years ago

Same with latest git.


$ ./bin/Release/winhiddump.exe
046D:C534: Logitech - USB Receiver
PATH:\\?\hid#vid_046d&pid_c534&mi_01&col04#7&1ebb799e&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  01  A1  01  85  10  15  00  25  01  35  00  45
  01  65  00  55  00  75  01  95  30  81  03  91  03  C1  00
  (31 bytes)
046D:C534: Logitech - USB Receiver
PATH:\\?\hid#vid_046d&pid_c534&mi_01&col05#7&1ebb799e&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  02  A1  01  85  11  15  00  25  01  35  00  45
  01  65  00  55  00  75  01  95  98  81  03  91  03  C1  00
  (31 bytes)
044E:1212:  -
PATH:\\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
DESCRIPTOR:
  05  01  09  06  A1  01  85  07  05  07  19  E0  29  E7  15  00
  25  01  35  00  45  01  65  00  55  00  75  01  95  08  81  02
  95  38  81  03  C1  00
  (38 bytes)

Unhandled Exception: HidSharp.Exceptions.DeviceIOException: Failed to get info.
   at HidSharp.Platform.Windows.WinHidDevice.RequiresGetInfo(GetInfoFlags flags) in C:\work\libusb\HidSharp\HidSharp\Platform\Windows\WinHidDevice.cs:line 139
   at HidSharp.Platform.Windows.WinHidDevice.GetManufacturer() in C:\work\libusb\HidSharp\HidSharp\Platform\Windows\WinHidDevice.cs:line 156
   at winhiddump.Program.Main(String[] args) in C:\work\hid\win-hid-dump\Program.cs:line 30
mcuee commented 3 years ago

But the issue may be related to HIDSharp.

mcuee commented 3 years ago

HIDSharp seems to work.

I have a long list of HID device in the system.

click to expand ``` /c/work/hid/HidSharp $ ./bin/HidSharp.Test.exe All device list: (unnamed manufacturer) (unnamed product) (no serial number) (VID 32903, PID 2590, version 2.0) @ \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1160, PID 4639, version 4.13) @ \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1160, PID 4639, version 4.13) @ \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col03#7&1ebb799e&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} (VID 1102, PID 4626, version 0.0) @ \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col04#7&1ebb799e&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} Plantronics Plantronics Blackwire 3220 Series D1CEC32927974D5F9BD6B2AEBF2EA8E3 (VID 1151, PID 49238, version 2.10) @ \\?\hid#vid_047f&pid_c056&mi_03&col01#f&39e6f119&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col05#7&1ebb799e&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (unnamed product) (no serial number) (VID 1118, PID 0, version 0.0) @ \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (unnamed product) (no serial number) (VID 32903, PID 2590, version 2.0) @ \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} (VID 1102, PID 4626, version 0.0) @ \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Optical Mouse (no serial number) (VID 1133, PID 49271, version 72.0) @ \\?\hid#vid_046d&pid_c077#e&113cd935&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Plantronics Plantronics Blackwire 3220 Series D1CEC32927974D5F9BD6B2AEBF2EA8E3 (VID 1151, PID 49238, version 2.10) @ \\?\hid#vid_047f&pid_c056&mi_03&col03#f&39e6f119&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1160, PID 4639, version 4.13) @ \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (unnamed product) (no serial number) (VID 1118, PID 0, version 0.0) @ \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} DELL Dell USB Entry Keyboard (no serial number) (VID 16700, PID 8455, version 1.78) @ \\?\hid#vid_413c&pid_2107#e&11005b8d&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd Microsoft HIDI2C Device 9999 (VID 1160, PID 4639, version 4.13) @ \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col01#7&1ebb799e&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Plantronics Plantronics Blackwire 3220 Series D1CEC32927974D5F9BD6B2AEBF2EA8E3 (VID 1151, PID 49238, version 2.10) @ \\?\hid#vid_047f&pid_c056&mi_03&col02#f&39e6f119&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (unnamed product) (no serial number) (VID 1118, PID 0, version 0.0) @ \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col02#7&1ebb799e&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_00#7&51bc424&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd Microsoft HIDI2C Device 9999 (VID 1160, PID 4639, version 4.13) @ \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (no serial number) (VID 16700, PID 45166, version 1.1) @ \\?\hid#vid_413c&pid_b06e#c&37ff1248&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Microchip Technology Inc. Simple HID Device Demo (no serial number) (VID 1240, PID 63, version 0.2) @ \\?\hid#vid_04d8&pid_003f#e&24ba9f4d&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (no serial number) (VID 16700, PID 45167, version 1.1) @ \\?\hid#vid_413c&pid_b06f#d&3624b04c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} COM3 (\\.\COM3) @ \\.\COM3 BLE device list: Press any key Complete device list (took 0 ms to get 26 devices): \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (unnamed product) (no serial number) (VID 32903, PID 2590, version 2.0) Max Lengths: Input 2, Output 0, Feature 0 Serial Ports: Report Descriptor: 05 01 09 0C A1 01 85 08 09 C6 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 06 95 07 81 03 C1 00 (34 bytes) UsagePage 1 Usage 12 Collection 1 ReportID 8 Usage 198 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Input 6 ReportCount 7 Input 3 EndCollection 0 Usage: 1000C 65548 Input: ReportID=8, Length=2, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: 100C6 65734 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1160, PID 4639, version 4.13) Max Lengths: Input 6, Output 0, Feature 0 Serial Ports: Report Descriptor: 05 01 09 02 A1 01 85 01 09 01 A1 00 05 09 19 01 29 03 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 03 81 02 95 05 81 03 05 01 09 30 25 7F 45 00 75 08 95 01 81 06 09 31 81 06 09 38 81 06 05 0C 0A 38 02 81 06 C1 00 C1 00 (73 bytes) UsagePage 1 Usage 2 Collection 1 ReportID 1 Usage 1 Collection 0 UsagePage 9 UsageMinimum 1 UsageMaximum 3 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 3 Input 2 ReportCount 5 Input 3 UsagePage 1 Usage 48 LogicalMaximum 127 PhysicalMaximum 0 ReportSize 8 ReportCount 1 Input 6 Usage 49 Input 6 Usage 56 Input 6 UsagePage 12 Usage 568 Input 6 EndCollection 0 EndCollection 0 Usage: 10002 GenericDesktopMouse Input: ReportID=1, Length=6, Items=6 3 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 90001 Button1, 90002 Button2, 90003 Button3 5 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10030 GenericDesktopX 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10031 GenericDesktopY 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10038 GenericDesktopWheel 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: C0238 787000 Opening device for 20 seconds... Failed to open device. \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1160, PID 4639, version 4.13) Max Lengths: Input 10, Output 0, Feature 257 Serial Ports: Report Descriptor: 05 0D 09 05 A1 01 85 08 09 22 A1 02 09 47 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 02 09 42 81 02 09 51 25 05 45 00 75 03 81 02 25 01 45 01 75 01 95 03 81 03 05 01 09 30 26 AF 04 46 E8 03 65 11 55 0E 75 10 95 01 81 02 09 31 26 7B 02 46 12 02 81 02 C1 00 05 0D 09 56 26 FF FF 46 FF FF 66 01 10 55 0C 81 02 09 54 25 05 75 08 81 02 05 09 09 02 25 01 45 01 65 00 55 00 75 01 81 02 09 03 81 02 95 06 81 03 85 09 05 0D 09 55 25 05 46 FF FF 66 01 10 55 0C 75 08 95 01 B1 02 25 01 45 01 65 00 55 00 75 01 96 F8 07 B1 03 85 0A 06 00 FF 09 C5 25 FF 46 FF FF 66 01 10 55 0C 75 08 96 00 01 B1 02 C1 00 (200 bytes) UsagePage 13 Usage 5 Collection 1 ReportID 8 Usage 34 Collection 2 Usage 71 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Input 2 Usage 66 Input 2 Usage 81 LogicalMaximum 5 PhysicalMaximum 0 ReportSize 3 Input 2 LogicalMaximum 1 PhysicalMaximum 1 ReportSize 1 ReportCount 3 Input 3 UsagePage 1 Usage 48 LogicalMaximum 1199 PhysicalMaximum 1000 Unit 17 UnitExponent 14 ReportSize 16 ReportCount 1 Input 2 Usage 49 LogicalMaximum 635 PhysicalMaximum 530 Input 2 EndCollection 0 UsagePage 13 Usage 86 LogicalMaximum 65535 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 Input 2 Usage 84 LogicalMaximum 5 ReportSize 8 Input 2 UsagePage 9 Usage 2 LogicalMaximum 1 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 Input 2 Usage 3 Input 2 ReportCount 6 Input 3 ReportID 9 UsagePage 13 Usage 85 LogicalMaximum 5 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 ReportSize 8 ReportCount 1 Feature 2 LogicalMaximum 1 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 2040 Feature 3 ReportID 10 UsagePage 65280 Usage 197 LogicalMaximum 255 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 ReportSize 8 ReportCount 256 Feature 2 EndCollection 0 Usage: D0005 851973 Input: ReportID=8, Length=10, Items=11 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: D0047 852039 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: D0042 852034 1 Elements x 3 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: D0051 852049 3 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: 1 Elements x 16 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: 10030 GenericDesktopX 1 Elements x 16 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: 10031 GenericDesktopY 1 Elements x 16 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: D0056 852054 1 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: D0054 852052 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 90002 Button2 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 90003 Button3 6 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Feature: ReportID=9, Length=257, Items=2 1 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: D0055 852053 2040 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Feature: ReportID=10, Length=257, Items=1 256 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: FF0000C5 4278190277 Opening device for 20 seconds... Failed to open device. \\?\hid#vid_046d&pid_c534&mi_01&col03#7&1ebb799e&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 2, Output 0, Feature 0 Serial Ports: System.NotSupportedException: Unable to reconstruct the report descriptor. at HidSharp.Platform.Windows.WinHidDevice.GetRawReportDescriptor() in C:\work\libusb\HidSharp\HidSharp\Platform\Windows\WinHidDevice.cs:line 195 at HidSharp.Test.Program.Main(String[] args) in C:\work\libusb\HidSharp\HidSharp.Test\Program.cs:line 249 \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd (VID 1102, PID 4626, version 0.0) Max Lengths: Input 9, Output 0, Feature 0 Serial Ports: Report Descriptor: 05 01 09 06 A1 01 85 07 05 07 19 E0 29 E7 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 08 81 02 95 38 81 03 C1 00 (38 bytes) UsagePage 1 Usage 6 Collection 1 ReportID 7 UsagePage 7 UsageMinimum 224 UsageMaximum 231 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 8 Input 2 ReportCount 56 Input 3 EndCollection 0 Usage: 10006 GenericDesktopKeyboard Input: ReportID=7, Length=9, Items=2 8 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 700E0 KeyboardLeftControl, 700E1 KeyboardLeftShift, 700E2 KeyboardLeftAlt, 700E3 KeyboardLeftGUI, 700E4 KeyboardRightControl, 700E5 KeyboardRightShift, 700E6 KeyboardRightAlt, 700E7 KeyboardRightGUI 56 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Failed to open device. \\?\hid#vid_046d&pid_c534&mi_01&col04#7&1ebb799e&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 7, Output 7, Feature 0 Serial Ports: Report Descriptor: 06 00 FF 09 01 A1 01 85 10 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 30 81 03 91 03 C1 00 (31 bytes) UsagePage 65280 Usage 1 Collection 1 ReportID 16 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 48 Input 3 Output 3 EndCollection 0 Usage: FF000001 4278190081 Input: ReportID=16, Length=7, Items=1 48 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=16, Length=7, Items=1 48 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#vid_047f&pid_c056&mi_03&col01#f&39e6f119&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Plantronics Plantronics Blackwire 3220 Series D1CEC32927974D5F9BD6B2AEBF2EA8E3 (VID 1151, PID 49238, version 2.10) Max Lengths: Input 33, Output 37, Feature 0 Serial Ports: Report Descriptor: 05 0C 09 01 A1 01 85 01 09 E9 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 06 09 EA 81 06 95 FE 81 03 85 02 96 00 01 81 03 85 05 09 00 45 00 75 08 95 20 81 02 85 07 09 00 81 02 85 04 09 00 95 24 91 02 85 06 09 00 91 02 C1 00 (77 bytes) UsagePage 12 Usage 1 Collection 1 ReportID 1 Usage 233 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Input 6 Usage 234 Input 6 ReportCount 254 Input 3 ReportID 2 ReportCount 256 Input 3 ReportID 5 Usage 0 PhysicalMaximum 0 ReportSize 8 ReportCount 32 Input 2 ReportID 7 Usage 0 Input 2 ReportID 4 Usage 0 ReportCount 36 Output 2 ReportID 6 Usage 0 Output 2 EndCollection 0 Usage: C0001 ConsumerConsumerControl Input: ReportID=1, Length=33, Items=3 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: C00E9 ConsumerVolumeIncrement 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: C00EA ConsumerVolumeDecrement 254 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Input: ReportID=2, Length=33, Items=1 256 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Input: ReportID=5, Length=33, Items=1 32 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: C0000 786432 Input: ReportID=7, Length=33, Items=1 32 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: C0000 786432 Output: ReportID=4, Length=37, Items=1 36 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: C0000 786432 Output: ReportID=6, Length=37, Items=1 36 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: C0000 786432 Opening device for 20 seconds... Opened device. Closed device. \\?\hid#vid_046d&pid_c534&mi_01&col05#7&1ebb799e&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 20, Output 20, Feature 0 Serial Ports: Report Descriptor: 06 00 FF 09 02 A1 01 85 11 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 98 81 03 91 03 C1 00 (31 bytes) UsagePage 65280 Usage 2 Collection 1 ReportID 17 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 152 Input 3 Output 3 EndCollection 0 Usage: FF000002 4278190082 Input: ReportID=17, Length=20, Items=1 152 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=17, Length=20, Items=1 152 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (unnamed product) (no serial number) (VID 1118, PID 0, version 0.0) Max Lengths: Input 2, Output 0, Feature 0 Serial Ports: Report Descriptor: 05 0C 09 01 A1 01 85 02 09 E9 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 02 09 EA 81 02 0A 21 02 81 02 95 05 81 03 C1 00 (43 bytes) UsagePage 12 Usage 1 Collection 1 ReportID 2 Usage 233 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Input 2 Usage 234 Input 2 Usage 545 Input 2 ReportCount 5 Input 3 EndCollection 0 Usage: C0001 ConsumerConsumerControl Input: ReportID=2, Length=2, Items=4 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: C00E9 ConsumerVolumeIncrement 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: C00EA ConsumerVolumeDecrement 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: C0221 786977 5 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (unnamed product) (no serial number) (VID 32903, PID 2590, version 2.0) Max Lengths: Input 2, Output 0, Feature 2 Serial Ports: Report Descriptor: 05 01 09 0D A1 01 85 1C 09 0D A1 02 09 81 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 02 95 07 81 03 09 CB 95 01 B1 02 95 07 B1 03 C1 00 C1 00 (50 bytes) UsagePage 1 Usage 13 Collection 1 ReportID 28 Usage 13 Collection 2 Usage 129 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Input 2 ReportCount 7 Input 3 Usage 203 ReportCount 1 Feature 2 ReportCount 7 Feature 3 EndCollection 0 EndCollection 0 Usage: 1000D 65549 Input: ReportID=28, Length=2, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 10081 65665 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Feature: ReportID=28, Length=2, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 100CB 65739 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (VID 1102, PID 4626, version 0.0) Max Lengths: Input 6, Output 0, Feature 0 Serial Ports: Report Descriptor: 05 01 09 02 A1 01 85 06 09 01 A1 00 05 09 19 01 29 03 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 03 81 02 95 05 81 03 05 01 09 30 26 00 02 45 00 75 10 95 01 81 06 09 31 81 06 C1 00 C1 00 (63 bytes) UsagePage 1 Usage 2 Collection 1 ReportID 6 Usage 1 Collection 0 UsagePage 9 UsageMinimum 1 UsageMaximum 3 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 3 Input 2 ReportCount 5 Input 3 UsagePage 1 Usage 48 LogicalMaximum 512 PhysicalMaximum 0 ReportSize 16 ReportCount 1 Input 6 Usage 49 Input 6 EndCollection 0 EndCollection 0 Usage: 10002 GenericDesktopMouse Input: ReportID=6, Length=6, Items=4 3 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 90001 Button1, 90002 Button2, 90003 Button3 5 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: 1 Elements x 16 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10030 GenericDesktopX 1 Elements x 16 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10031 GenericDesktopY Opening device for 20 seconds... Failed to open device. \\?\hid#vid_046d&pid_c077#e&113cd935&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Optical Mouse (no serial number) (VID 1133, PID 49271, version 72.0) Max Lengths: Input 5, Output 0, Feature 0 Serial Ports: Report Descriptor: 05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 03 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 03 81 02 95 05 81 03 05 01 09 30 25 7F 45 00 75 08 95 01 81 06 09 31 81 06 09 38 81 06 C1 00 C1 00 (64 bytes) UsagePage 1 Usage 2 Collection 1 Usage 1 Collection 0 UsagePage 9 UsageMinimum 1 UsageMaximum 3 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 3 Input 2 ReportCount 5 Input 3 UsagePage 1 Usage 48 LogicalMaximum 127 PhysicalMaximum 0 ReportSize 8 ReportCount 1 Input 6 Usage 49 Input 6 Usage 56 Input 6 EndCollection 0 EndCollection 0 Usage: 10002 GenericDesktopMouse Input: ReportID=0, Length=5, Items=5 3 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 90001 Button1, 90002 Button2, 90003 Button3 5 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10030 GenericDesktopX 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10031 GenericDesktopY 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10038 GenericDesktopWheel Opening device for 20 seconds... Failed to open device. \\?\hid#vid_047f&pid_c056&mi_03&col03#f&39e6f119&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} Plantronics Plantronics Blackwire 3220 Series D1CEC32927974D5F9BD6B2AEBF2EA8E3 (VID 1151, PID 49238, version 2.10) Max Lengths: Input 33, Output 33, Feature 3 Serial Ports: Report Descriptor: 06 A0 FF 09 03 A1 01 85 14 09 B1 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 06 09 B2 81 06 09 B5 81 06 09 B7 81 06 09 B3 81 06 95 FB 81 03 85 1F 09 9C 95 01 81 06 95 FF 81 03 85 03 09 30 45 00 75 08 95 20 81 02 85 15 09 8C 26 FF FF 75 10 95 01 81 22 25 01 45 01 75 01 95 F0 81 03 85 19 09 8D 95 01 91 22 09 8F 91 22 09 9E 91 22 09 DC 91 22 09 D2 91 06 09 D9 91 06 95 FA 91 03 85 1A 09 B5 95 01 91 22 95 FF 91 03 85 03 09 30 45 00 75 08 95 20 91 02 85 1B 09 CF 45 01 75 01 95 01 B1 22 09 B5 B1 22 09 DE B1 23 09 D8 B1 22 95 04 B1 03 09 09 95 01 B1 22 09 17 B1 22 09 18 B1 22 09 1E B1 22 09 20 B1 22 09 2A B1 22 95 02 B1 03 C1 00 (212 bytes) UsagePage 65440 Usage 3 Collection 1 ReportID 20 Usage 177 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Input 6 Usage 178 Input 6 Usage 181 Input 6 Usage 183 Input 6 Usage 179 Input 6 ReportCount 251 Input 3 ReportID 31 Usage 156 ReportCount 1 Input 6 ReportCount 255 Input 3 ReportID 3 Usage 48 PhysicalMaximum 0 ReportSize 8 ReportCount 32 Input 2 ReportID 21 Usage 140 LogicalMaximum 65535 ReportSize 16 ReportCount 1 Input 34 LogicalMaximum 1 PhysicalMaximum 1 ReportSize 1 ReportCount 240 Input 3 ReportID 25 Usage 141 ReportCount 1 Output 34 Usage 143 Output 34 Usage 158 Output 34 Usage 220 Output 34 Usage 210 Output 6 Usage 217 Output 6 ReportCount 250 Output 3 ReportID 26 Usage 181 ReportCount 1 Output 34 ReportCount 255 Output 3 ReportID 3 Usage 48 PhysicalMaximum 0 ReportSize 8 ReportCount 32 Output 2 ReportID 27 Usage 207 PhysicalMaximum 1 ReportSize 1 ReportCount 1 Feature 34 Usage 181 Feature 34 Usage 222 Feature 35 Usage 216 Feature 34 ReportCount 4 Feature 3 Usage 9 ReportCount 1 Feature 34 Usage 23 Feature 34 Usage 24 Feature 34 Usage 30 Feature 34 Usage 32 Feature 34 Usage 42 Feature 34 ReportCount 2 Feature 3 EndCollection 0 Usage: FFA00003 4288675843 Input: ReportID=20, Length=33, Items=6 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: FFA000B1 4288676017 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: FFA000B2 4288676018 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: FFA000B5 4288676021 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: FFA000B7 4288676023 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: FFA000B3 4288676019 251 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Input: ReportID=31, Length=33, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: FFA0009C 4288675996 255 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Input: ReportID=3, Length=33, Items=1 32 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: FFA00030 4288675888 Input: ReportID=21, Length=33, Items=2 1 Elements x 16 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, NoPreferred, Usages: FFA0008C 4288675980 240 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=25, Length=33, Items=7 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA0008D 4288675981 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA0008F 4288675983 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA0009E 4288675998 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA000DC 4288676060 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: FFA000D2 4288676050 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: FFA000D9 4288676057 250 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=26, Length=33, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA000B5 4288676021 255 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=3, Length=33, Items=1 32 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: FFA00030 4288675888 Feature: ReportID=27, Length=3, Items=12 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA000CF 4288676047 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA000B5 4288676021 1 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, NoPreferred, Usages: FFA000DE 4288676062 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA000D8 4288676056 4 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA00009 4288675849 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA00017 4288675863 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA00018 4288675864 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA0001E 4288675870 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA00020 4288675872 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: FFA0002A 4288675882 2 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1160, PID 4639, version 4.13) Max Lengths: Input 0, Output 0, Feature 135 Serial Ports: Report Descriptor: 06 02 FF 09 01 A1 01 85 07 09 02 15 00 25 FF 35 00 46 FF FF 66 01 10 55 0C 75 08 95 86 B1 02 C1 00 (33 bytes) UsagePage 65282 Usage 1 Collection 1 ReportID 7 Usage 2 LogicalMinimum 0 LogicalMaximum 255 PhysicalMinimum 0 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 ReportSize 8 ReportCount 134 Feature 2 EndCollection 0 Usage: FF020001 4278321153 Feature: ReportID=7, Length=135, Items=1 134 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: FF020002 4278321154 Opening device for 20 seconds... Opened device. Closed device. \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (unnamed product) (no serial number) (VID 1118, PID 0, version 0.0) Max Lengths: Input 2, Output 0, Feature 0 Serial Ports: Report Descriptor: 05 01 09 80 A1 01 85 03 09 81 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 02 95 07 81 03 C1 00 (34 bytes) UsagePage 1 Usage 128 Collection 1 ReportID 3 Usage 129 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Input 2 ReportCount 7 Input 3 EndCollection 0 Usage: 10080 GenericDesktopSystemControl Input: ReportID=3, Length=2, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 10081 65665 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#vid_413c&pid_2107#e&11005b8d&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd DELL Dell USB Entry Keyboard (no serial number) (VID 16700, PID 8455, version 1.78) Max Lengths: Input 9, Output 2, Feature 0 Serial Ports: Report Descriptor: 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 08 81 02 95 38 81 03 05 08 19 01 29 03 95 03 91 02 95 05 91 03 C1 00 (50 bytes) UsagePage 1 Usage 6 Collection 1 UsagePage 7 UsageMinimum 224 UsageMaximum 231 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 8 Input 2 ReportCount 56 Input 3 UsagePage 8 UsageMinimum 1 UsageMaximum 3 ReportCount 3 Output 2 ReportCount 5 Output 3 EndCollection 0 Usage: 10006 GenericDesktopKeyboard Input: ReportID=0, Length=9, Items=2 8 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 700E0 KeyboardLeftControl, 700E1 KeyboardLeftShift, 700E2 KeyboardLeftAlt, 700E3 KeyboardLeftGUI, 700E4 KeyboardRightControl, 700E5 KeyboardRightShift, 700E6 KeyboardRightAlt, 700E7 KeyboardRightGUI 56 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=0, Length=2, Items=2 3 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 80001 LedNumLock, 80002 LedCapsLock, 80003 LedScrollLock 5 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Failed to open device. \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1160, PID 4639, version 4.13) Max Lengths: Input 0, Output 0, Feature 2 Serial Ports: Report Descriptor: 05 0D 09 0E A1 01 85 0C 09 22 A1 00 09 57 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 B1 02 09 58 B1 02 95 06 B1 03 85 0B C1 00 09 22 A1 02 09 52 25 0A 46 FF FF 66 01 10 55 0C 75 08 95 01 B1 02 C1 00 C1 00 (70 bytes) UsagePage 13 Usage 14 Collection 1 ReportID 12 Usage 34 Collection 0 Usage 87 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Feature 2 Usage 88 Feature 2 ReportCount 6 Feature 3 ReportID 11 EndCollection 0 Usage 34 Collection 2 Usage 82 LogicalMaximum 10 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 ReportSize 8 ReportCount 1 Feature 2 EndCollection 0 EndCollection 0 Usage: D000E 851982 Feature: ReportID=12, Length=2, Items=3 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: D0057 852055 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: D0058 852056 6 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Feature: ReportID=11, Length=2, Items=1 1 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: D0052 852050 Opening device for 20 seconds... Opened device. Closed device. \\?\hid#vid_046d&pid_c534&mi_01&col01#7&1ebb799e&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 8, Output 0, Feature 0 Serial Ports: Report Descriptor: 05 01 09 02 A1 01 85 02 09 01 A1 00 05 09 19 01 29 10 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 10 81 02 05 01 09 30 26 FF 07 45 00 75 0C 95 01 81 06 09 31 81 06 09 38 25 7F 75 08 81 06 05 0C 0A 38 02 81 06 C1 00 C1 00 (74 bytes) UsagePage 1 Usage 2 Collection 1 ReportID 2 Usage 1 Collection 0 UsagePage 9 UsageMinimum 1 UsageMaximum 16 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 16 Input 2 UsagePage 1 Usage 48 LogicalMaximum 2047 PhysicalMaximum 0 ReportSize 12 ReportCount 1 Input 6 Usage 49 Input 6 Usage 56 LogicalMaximum 127 ReportSize 8 Input 6 UsagePage 12 Usage 568 Input 6 EndCollection 0 EndCollection 0 Usage: 10002 GenericDesktopMouse Input: ReportID=2, Length=8, Items=5 16 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 90001 Button1, 90002 Button2, 90003 Button3, 90004 Button4, 90005 Button5, 90006 Button6, 90007 Button7, 90008 Button8, 90009 Button9, 9000A Button10, 9000B Button11, 9000C Button12, 9000D Button13, 9000E Button14, 9000F Button15, 90010 Button16 1 Elements x 12 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10030 GenericDesktopX 1 Elements x 12 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10031 GenericDesktopY 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10038 GenericDesktopWheel 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: C0238 787000 Opening device for 20 seconds... Failed to open device. \\?\hid#vid_047f&pid_c056&mi_03&col02#f&39e6f119&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} Plantronics Plantronics Blackwire 3220 Series D1CEC32927974D5F9BD6B2AEBF2EA8E3 (VID 1151, PID 49238, version 2.10) Max Lengths: Input 2, Output 2, Feature 0 Serial Ports: Report Descriptor: 05 0B 09 05 A1 01 85 08 09 2F 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 06 09 20 81 22 09 21 81 22 95 05 81 03 85 09 05 08 09 09 95 01 91 22 95 07 91 03 85 17 09 17 95 01 91 22 95 07 91 03 85 18 09 18 95 01 91 22 95 07 91 03 85 1E 09 1E 95 01 91 22 95 07 91 03 85 20 09 20 95 01 91 22 95 07 91 03 85 2A 09 2A 95 01 91 22 95 07 91 03 C1 00 (116 bytes) UsagePage 11 Usage 5 Collection 1 ReportID 8 Usage 47 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Input 6 Usage 32 Input 34 Usage 33 Input 34 ReportCount 5 Input 3 ReportID 9 UsagePage 8 Usage 9 ReportCount 1 Output 34 ReportCount 7 Output 3 ReportID 23 Usage 23 ReportCount 1 Output 34 ReportCount 7 Output 3 ReportID 24 Usage 24 ReportCount 1 Output 34 ReportCount 7 Output 3 ReportID 30 Usage 30 ReportCount 1 Output 34 ReportCount 7 Output 3 ReportID 32 Usage 32 ReportCount 1 Output 34 ReportCount 7 Output 3 ReportID 42 Usage 42 ReportCount 1 Output 34 ReportCount 7 Output 3 EndCollection 0 Usage: B0005 720901 Input: ReportID=8, Length=2, Items=4 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: B002F 720943 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: B0020 720928 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: B0021 720929 5 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=9, Length=2, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: 80009 524297 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=23, Length=2, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: 80017 524311 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=24, Length=2, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: 80018 524312 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=30, Length=2, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: 8001E 524318 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=32, Length=2, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: 80020 524320 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=42, Length=2, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: ToggleButton, Flags: Variable, NoPreferred, Usages: 8002A 524330 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd (unnamed manufacturer) (unnamed product) (no serial number) (VID 1118, PID 0, version 0.0) Max Lengths: Input 2, Output 0, Feature 0 Serial Ports: Report Descriptor: 05 01 09 06 A1 01 85 01 05 07 09 69 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 02 09 6A 81 02 09 6B 81 02 09 6C 81 02 09 E3 81 02 09 4C 81 02 09 E2 81 02 09 E0 81 02 C1 00 (60 bytes) UsagePage 1 Usage 6 Collection 1 ReportID 1 UsagePage 7 Usage 105 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Input 2 Usage 106 Input 2 Usage 107 Input 2 Usage 108 Input 2 Usage 227 Input 2 Usage 76 Input 2 Usage 226 Input 2 Usage 224 Input 2 EndCollection 0 Usage: 10006 GenericDesktopKeyboard Input: ReportID=1, Length=2, Items=8 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 70069 458857 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 7006A 458858 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 7006B 458859 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 7006C 458860 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 700E3 KeyboardLeftGUI 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 7004C KeyboardDelete 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 700E2 KeyboardLeftAlt 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 700E0 KeyboardLeftControl Opening device for 20 seconds... Failed to open device. \\?\hid#vid_046d&pid_c534&mi_01&col02#7&1ebb799e&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 5, Output 0, Feature 0 Serial Ports: System.NotSupportedException: Unable to reconstruct the report descriptor. at HidSharp.Platform.Windows.WinHidDevice.GetRawReportDescriptor() in C:\work\libusb\HidSharp\HidSharp\Platform\Windows\WinHidDevice.cs:line 195 at HidSharp.Test.Program.Main(String[] args) in C:\work\libusb\HidSharp\HidSharp.Test\Program.cs:line 249 \\?\hid#vid_046d&pid_c534&mi_00#7&51bc424&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 9, Output 2, Feature 0 Serial Ports: Report Descriptor: 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 08 81 02 95 38 81 03 05 08 19 01 29 05 95 05 91 02 95 03 91 03 C1 00 (50 bytes) UsagePage 1 Usage 6 Collection 1 UsagePage 7 UsageMinimum 224 UsageMaximum 231 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 8 Input 2 ReportCount 56 Input 3 UsagePage 8 UsageMinimum 1 UsageMaximum 5 ReportCount 5 Output 2 ReportCount 3 Output 3 EndCollection 0 Usage: 10006 GenericDesktopKeyboard Input: ReportID=0, Length=9, Items=2 8 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 700E0 KeyboardLeftControl, 700E1 KeyboardLeftShift, 700E2 KeyboardLeftAlt, 700E3 KeyboardLeftGUI, 700E4 KeyboardRightControl, 700E5 KeyboardRightShift, 700E6 KeyboardRightAlt, 700E7 KeyboardRightGUI 56 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=0, Length=2, Items=2 5 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 80001 LedNumLock, 80002 LedCapsLock, 80003 LedScrollLock, 80004 LedCompose, 80005 LedKana 3 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Failed to open device. \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1160, PID 4639, version 4.13) Max Lengths: Input 28, Output 0, Feature 8 Serial Ports: Report Descriptor: 06 01 FF 09 01 A1 01 85 03 09 01 15 00 25 FF 35 00 46 FF FF 66 01 10 55 0C 75 08 95 1B 81 02 85 04 09 02 81 02 85 06 09 04 95 07 81 02 25 01 45 01 65 00 55 00 75 01 95 A0 81 03 85 05 09 03 25 FF 46 FF FF 66 01 10 55 0C 75 08 95 07 B1 02 C1 00 (81 bytes) UsagePage 65281 Usage 1 Collection 1 ReportID 3 Usage 1 LogicalMinimum 0 LogicalMaximum 255 PhysicalMinimum 0 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 ReportSize 8 ReportCount 27 Input 2 ReportID 4 Usage 2 Input 2 ReportID 6 Usage 4 ReportCount 7 Input 2 LogicalMaximum 1 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 160 Input 3 ReportID 5 Usage 3 LogicalMaximum 255 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 ReportSize 8 ReportCount 7 Feature 2 EndCollection 0 Usage: FF010001 4278255617 Input: ReportID=3, Length=28, Items=1 27 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: FF010001 4278255617 Input: ReportID=4, Length=28, Items=1 27 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: FF010002 4278255618 Input: ReportID=6, Length=28, Items=2 7 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: FF010004 4278255620 160 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Feature: ReportID=5, Length=8, Items=1 7 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: FF010003 4278255619 Opening device for 20 seconds... Opened device. Closed device. \\?\hid#vid_413c&pid_b06e#c&37ff1248&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (no serial number) (VID 16700, PID 45166, version 1.1) Max Lengths: Input 193, Output 193, Feature 0 Serial Ports: Report Descriptor: 06 DA FF 09 DA A1 01 09 DA 25 7F 35 00 45 00 65 00 55 00 75 08 95 01 81 02 15 00 25 01 45 01 75 01 96 F8 05 81 03 96 00 06 91 03 C1 00 (45 bytes) UsagePage 65498 Usage 218 Collection 1 Usage 218 LogicalMaximum 127 PhysicalMinimum 0 PhysicalMaximum 0 Unit 0 UnitExponent 0 ReportSize 8 ReportCount 1 Input 2 LogicalMinimum 0 LogicalMaximum 1 PhysicalMaximum 1 ReportSize 1 ReportCount 1528 Input 3 ReportCount 1536 Output 3 EndCollection 0 Usage: FFDA00DA 4292477146 Input: ReportID=0, Length=193, Items=2 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: FFDA00DA 4292477146 1528 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=0, Length=193, Items=1 1536 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#vid_04d8&pid_003f#e&24ba9f4d&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Microchip Technology Inc. Simple HID Device Demo (no serial number) (VID 1240, PID 63, version 0.2) Max Lengths: Input 65, Output 65, Feature 0 Serial Ports: Report Descriptor: 06 00 FF 09 01 A1 01 19 01 29 40 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 40 81 00 96 C0 01 81 03 19 01 29 40 95 40 91 00 96 C0 01 91 03 C1 00 (49 bytes) UsagePage 65280 Usage 1 Collection 1 UsageMinimum 1 UsageMaximum 64 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 64 Input 0 ReportCount 448 Input 3 UsageMinimum 1 UsageMaximum 64 ReportCount 64 Output 0 ReportCount 448 Output 3 EndCollection 0 Usage: FF000001 4278190081 Input: ReportID=0, Length=65, Items=2 64 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: None, Usages: FF000001 4278190081, FF000002 4278190082, FF000003 4278190083, FF000004 4278190084, FF000005 4278190085, FF000006 4278190086, FF000007 4278190087, FF000008 4278190088, FF000009 4278190089, FF00000A 4278190090, FF00000B 4278190091, FF00000C 4278190092, FF00000D 4278190093, FF00000E 4278190094, FF00000F 4278190095, FF000010 4278190096, FF000011 4278190097, FF000012 4278190098, FF000013 4278190099, FF000014 4278190100, FF000015 4278190101, FF000016 4278190102, FF000017 4278190103, FF000018 4278190104, FF000019 4278190105, FF00001A 4278190106, FF00001B 4278190107, FF00001C 4278190108, FF00001D 4278190109, FF00001E 4278190110, FF00001F 4278190111, FF000020 4278190112, FF000021 4278190113, FF000022 4278190114, FF000023 4278190115, FF000024 4278190116, FF000025 4278190117, FF000026 4278190118, FF000027 4278190119, FF000028 4278190120, FF000029 4278190121, FF00002A 4278190122, FF00002B 4278190123, FF00002C 4278190124, FF00002D 4278190125, FF00002E 4278190126, FF00002F 4278190127, FF000030 4278190128, FF000031 4278190129, FF000032 4278190130, FF000033 4278190131, FF000034 4278190132, FF000035 4278190133, FF000036 4278190134, FF000037 4278190135, FF000038 4278190136, FF000039 4278190137, FF00003A 4278190138, FF00003B 4278190139, FF00003C 4278190140, FF00003D 4278190141, FF00003E 4278190142, FF00003F 4278190143, FF000040 4278190144 448 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=0, Length=65, Items=2 64 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: None, Usages: FF000001 4278190081, FF000002 4278190082, FF000003 4278190083, FF000004 4278190084, FF000005 4278190085, FF000006 4278190086, FF000007 4278190087, FF000008 4278190088, FF000009 4278190089, FF00000A 4278190090, FF00000B 4278190091, FF00000C 4278190092, FF00000D 4278190093, FF00000E 4278190094, FF00000F 4278190095, FF000010 4278190096, FF000011 4278190097, FF000012 4278190098, FF000013 4278190099, FF000014 4278190100, FF000015 4278190101, FF000016 4278190102, FF000017 4278190103, FF000018 4278190104, FF000019 4278190105, FF00001A 4278190106, FF00001B 4278190107, FF00001C 4278190108, FF00001D 4278190109, FF00001E 4278190110, FF00001F 4278190111, FF000020 4278190112, FF000021 4278190113, FF000022 4278190114, FF000023 4278190115, FF000024 4278190116, FF000025 4278190117, FF000026 4278190118, FF000027 4278190119, FF000028 4278190120, FF000029 4278190121, FF00002A 4278190122, FF00002B 4278190123, FF00002C 4278190124, FF00002D 4278190125, FF00002E 4278190126, FF00002F 4278190127, FF000030 4278190128, FF000031 4278190129, FF000032 4278190130, FF000033 4278190131, FF000034 4278190132, FF000035 4278190133, FF000036 4278190134, FF000037 4278190135, FF000038 4278190136, FF000039 4278190137, FF00003A 4278190138, FF00003B 4278190139, FF00003C 4278190140, FF00003D 4278190141, FF00003E 4278190142, FF00003F 4278190143, FF000040 4278190144 448 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#vid_413c&pid_b06f#d&3624b04c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (unnamed manufacturer) (no serial number) (VID 16700, PID 45167, version 1.1) Max Lengths: Input 193, Output 193, Feature 0 Serial Ports: Report Descriptor: 06 DA FF 09 DA A1 01 09 DA 25 7F 35 00 45 00 65 00 55 00 75 08 95 01 81 02 15 00 25 01 45 01 75 01 96 F8 05 81 03 96 00 06 91 03 C1 00 (45 bytes) UsagePage 65498 Usage 218 Collection 1 Usage 218 LogicalMaximum 127 PhysicalMinimum 0 PhysicalMaximum 0 Unit 0 UnitExponent 0 ReportSize 8 ReportCount 1 Input 2 LogicalMinimum 0 LogicalMaximum 1 PhysicalMaximum 1 ReportSize 1 ReportCount 1528 Input 3 ReportCount 1536 Output 3 EndCollection 0 Usage: FFDA00DA 4292477146 Input: ReportID=0, Length=193, Items=2 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: FFDA00DA 4292477146 1528 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=0, Length=193, Items=1 1536 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. Press a key to exit... ```
todbot commented 3 years ago

That's weird because win-hid-dump is just a thin wrapper on the HIDSharp stuff

mcuee commented 3 years ago

That's weird because win-hid-dump is just a thin wrapper on the HIDSharp stuff

Further tests show that HIDSharp is also not stable for my particular system, sometimes it hangs. So I think it is not a real issue of win-hid-dump (maybe adding retry may help) but rather HIDSharp issues.

mcuee commented 3 years ago

It seems to me the issue is only with Logitech USB receiver.

Tested with my home Acer Windows 10 laptop.

With Logitech USB Receiver plugged in, it will crash.

$ ./winhiddump.exe
046D:C534: Logitech - USB Receiver
PATH:\\?\hid#vid_046d&pid_c534&mi_01&col01#7&2fa52f82&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  01  09  02  A1  01  85  02  09  01  A1  00  05  09  19  01
  29  10  15  00  25  01  35  00  45  01  65  00  55  00  75  01
  95  10  81  02  05  01  09  30  26  FF  07  45  00  75  0C  95
  01  81  06  09  31  81  06  09  38  25  7F  75  08  81  06  05
  0C  0A  38  02  81  06  C1  00  C1  00
  (74 bytes)
046D:C534: Logitech - USB Receiver
PATH:\\?\hid#vid_046d&pid_c534&mi_01&col02#7&2fa52f82&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}

Unhandled Exception: System.NotSupportedException: Unable to reconstruct the report descriptor.
   at HidSharp.Platform.Windows.WinHidDevice.GetRawReportDescriptor() in C:\work\hid\HidSharp\HidSharp\Platform\Windows\WinHidDevice.cs:line 195
   at winhiddump.Program.Main(String[] args) in C:\work\hid\win-hid-dump\Program.cs:line 32

Without the Logitech USB Receiver plugged in, it will not crash.

$ ./winhiddump.exe
2BF6:A096: Acer Inc. - Launch Manager Wireless Device
PATH:\\?\hid#hidclass&col02#1&2d595ca7&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  01  09  0C  A1  01  85  01  09  C6  15  00  25  01  35  00
  45  01  65  00  55  00  75  01  95  01  81  06  95  07  81  03
  C1  00
  (34 bytes)
04F3:3060: Microsoft - HIDI2C Device
PATH:\\?\hid#elan0501&col01#5&10870616&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  01  09  02  A1  01  85  01  09  01  A1  00  05  09  19  01
  29  02  15  00  25  01  35  00  45  01  65  00  55  00  75  01
  95  02  81  02  95  06  81  03  05  01  09  30  25  7F  45  00
  75  08  95  01  81  06  09  31  81  06  15  00  25  01  45  01
  75  01  95  28  81  03  85  0E  C1  00  06  00  FF  09  01  25
  FF  45  00  75  08  95  01  B1  02  09  C5  95  03  B1  02  C1
  00
  (97 bytes)
04F3:3060: Microsoft - HIDI2C Device
PATH:\\?\hid#elan0501&col03#5&10870616&1&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  0D  09  05  A1  01  85  04  09  22  A1  02  09  47  15  00
  25  01  35  00  45  01  65  00  55  00  75  01  95  01  81  02
  09  42  81  02  95  02  81  03  09  51  25  0F  45  00  75  04
  95  01  81  02  05  01  09  30  26  A2  0C  46  94  01  65  13
  55  0E  75  10  81  02  09  31  26  26  09  46  24  01  81  02
  C1  00  05  0D  09  56  26  FF  FF  46  FF  FF  66  01  10  55
  0C  81  02  09  54  25  7F  75  08  81  02  05  09  09  01  25
  01  45  01  65  00  55  00  75  01  81  02  95  07  81  03  09
  C5  46  FF  FF  66  01  10  55  0C  75  08  95  02  81  03  85
  07  05  0D  09  60  45  01  65  00  55  00  75  01  95  01  B1
  02  96  FF  07  B1  03  85  02  09  55  25  0F  46  FF  FF  66
  01  10  55  0C  75  04  95  01  B1  02  09  59  B1  02  25  01
  45  01  65  00  55  00  75  01  96  F8  07  B1  03  85  06  06
  00  FF  09  C5  25  FF  46  FF  FF  66  01  10  55  0C  75  08
  96  00  01  B1  02  C1  00
  (231 bytes)
04F3:3060: Microsoft - HIDI2C Device
PATH:\\?\hid#elan0501&col04#5&10870616&1&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  0D  09  0E  A1  01  85  05  09  22  A1  00  09  57  15  00
  25  01  35  00  45  01  65  00  55  00  75  01  95  01  B1  02
  09  58  B1  02  95  0E  B1  03  85  03  C1  00  09  22  A1  00
  09  52  25  0A  46  FF  FF  66  01  10  55  0C  75  10  95  01
  B1  02  C1  00  C1  00
  (70 bytes)
2BF6:A096: Acer Inc. - Launch Manager Wireless Device
PATH:\\?\hid#hidclass&col01#1&2d595ca7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  01  A1  01  85  40  09  02  15  00  25  FF  35
  00  45  00  65  00  55  00  75  08  95  10  81  02  09  02  91
  02  C1  00
  (35 bytes)
04F3:3060: Microsoft - HIDI2C Device
PATH:\\?\hid#elan0501&col02#5&10870616&1&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  01  A1  01  85  5C  09  01  15  00  25  FF  35
  00  45  00  65  00  55  00  75  08  95  0B  81  06  85  0D  09
  C5  95  04  B1  02  25  01  45  01  75  01  96  E0  15  B1  03
  85  0C  09  C6  25  FF  45  00  75  08  96  C0  02  B1  02  85
  0B  09  C7  95  42  B1  02  25  01  45  01  75  01  96  F0  13
  B1  03  C1  00
  (84 bytes)
0925:7001: Lakeview Research - Generic HID
PATH:\\?\hid#vid_0925&pid_7001#6&18b7cc42&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  01  A1  01  85  01  09  00  15  00  25  FF  35
  00  45  00  65  00  55  00  75  08  95  02  82  02  01  85  02
  09  00  92  02  01  85  03  09  00  B2  02  01  85  04  09  00
  B2  02  01  C1  00
  (53 bytes)
mcuee commented 3 years ago

HIDSharp does not crash with the Logitech USB receiver plugged in.

click to expand ``` All device list: Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col05#7&2fa52f82&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col01#7&2fa52f82&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_00#7&73a81b9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col03#7&2fa52f82&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col02#7&2fa52f82&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1267, PID 12384, version 0.3) @ \\?\hid#elan0501&col01#5&10870616&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col04#7&2fa52f82&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1267, PID 12384, version 0.3) @ \\?\hid#elan0501&col02#5&10870616&1&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} Acer Inc. Launch Manager Wireless Device (no serial number) (VID 11254, PID 41110, version 0.1) @ \\?\hid#hidclass&col02#1&2d595ca7&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} Acer Inc. Launch Manager Wireless Device (no serial number) (VID 11254, PID 41110, version 0.1) @ \\?\hid#hidclass&col01#1&2d595ca7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1267, PID 12384, version 0.3) @ \\?\hid#elan0501&col03#5&10870616&1&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1267, PID 12384, version 0.3) @ \\?\hid#elan0501&col04#5&10870616&1&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} Lakeview Research Generic HID (no serial number) (VID 2341, PID 28673, version 0.1) @ \\?\hid#vid_0925&pid_7001#6&18b7cc42&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} BLE device list: Press any key Complete device list (took 0 ms to get 13 devices): \\?\hid#vid_046d&pid_c534&mi_01&col05#7&2fa52f82&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 20, Output 20, Feature 0 Serial Ports: Report Descriptor: 06 00 FF 09 02 A1 01 85 11 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 98 81 03 91 03 C1 00 (31 bytes) UsagePage 65280 Usage 2 Collection 1 ReportID 17 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 152 Input 3 Output 3 EndCollection 0 Usage: FF000002 4278190082 Input: ReportID=17, Length=20, Items=1 152 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=17, Length=20, Items=1 152 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#vid_046d&pid_c534&mi_01&col01#7&2fa52f82&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 8, Output 0, Feature 0 Serial Ports: Report Descriptor: 05 01 09 02 A1 01 85 02 09 01 A1 00 05 09 19 01 29 10 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 10 81 02 05 01 09 30 26 FF 07 45 00 75 0C 95 01 81 06 09 31 81 06 09 38 25 7F 75 08 81 06 05 0C 0A 38 02 81 06 C1 00 C1 00 (74 bytes) UsagePage 1 Usage 2 Collection 1 ReportID 2 Usage 1 Collection 0 UsagePage 9 UsageMinimum 1 UsageMaximum 16 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 16 Input 2 UsagePage 1 Usage 48 LogicalMaximum 2047 PhysicalMaximum 0 ReportSize 12 ReportCount 1 Input 6 Usage 49 Input 6 Usage 56 LogicalMaximum 127 ReportSize 8 Input 6 UsagePage 12 Usage 568 Input 6 EndCollection 0 EndCollection 0 Usage: 10002 GenericDesktopMouse Input: ReportID=2, Length=8, Items=5 16 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 90001 Button1, 90002 Button2, 90003 Button3, 90004 Button4, 90005 Button5, 90006 Button6, 90007 Button7, 90008 Button8, 90009 Button9, 9000A Button10, 9000B Button11, 9000C Button12, 9000D Button13, 9000E Button14, 9000F Button15, 90010 Button16 1 Elements x 12 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10030 GenericDesktopX 1 Elements x 12 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10031 GenericDesktopY 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10038 GenericDesktopWheel 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: C0238 787000 Opening device for 20 seconds... Failed to open device. \\?\hid#vid_046d&pid_c534&mi_00#7&73a81b9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 9, Output 2, Feature 0 Serial Ports: Report Descriptor: 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 08 81 02 95 38 81 03 05 08 19 01 29 05 95 05 91 02 95 03 91 03 C1 00 (50 bytes) UsagePage 1 Usage 6 Collection 1 UsagePage 7 UsageMinimum 224 UsageMaximum 231 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 8 Input 2 ReportCount 56 Input 3 UsagePage 8 UsageMinimum 1 UsageMaximum 5 ReportCount 5 Output 2 ReportCount 3 Output 3 EndCollection 0 Usage: 10006 GenericDesktopKeyboard Input: ReportID=0, Length=9, Items=2 8 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 700E0 KeyboardLeftControl, 700E1 KeyboardLeftShift, 700E2 KeyboardLeftAlt, 700E3 KeyboardLeftGUI, 700E4 KeyboardRightControl, 700E5 KeyboardRightShift, 700E6 KeyboardRightAlt, 700E7 KeyboardRightGUI 56 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=0, Length=2, Items=2 5 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 80001 LedNumLock, 80002 LedCapsLock, 80003 LedScrollLock, 80004 LedCompose, 80005 LedKana 3 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Failed to open device. \\?\hid#vid_046d&pid_c534&mi_01&col03#7&2fa52f82&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 2, Output 0, Feature 0 Serial Ports: System.NotSupportedException: Unable to reconstruct the report descriptor. at HidSharp.Platform.Windows.WinHidDevice.GetRawReportDescriptor() in C:\work\hid\HidSharp\HidSharp\Platform\Windows\WinHidDevice.cs:line 195 at HidSharp.Test.Program.Main(String[] args) in C:\work\hid\HidSharp\HidSharp.Test\Program.cs:line 249 \\?\hid#vid_046d&pid_c534&mi_01&col02#7&2fa52f82&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 5, Output 0, Feature 0 Serial Ports: System.NotSupportedException: Unable to reconstruct the report descriptor. at HidSharp.Platform.Windows.WinHidDevice.GetRawReportDescriptor() in C:\work\hid\HidSharp\HidSharp\Platform\Windows\WinHidDevice.cs:line 195 at HidSharp.Test.Program.Main(String[] args) in C:\work\hid\HidSharp\HidSharp.Test\Program.cs:line 249 \\?\hid#elan0501&col01#5&10870616&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1267, PID 12384, version 0.3) Max Lengths: Input 9, Output 0, Feature 5 Serial Ports: Report Descriptor: 05 01 09 02 A1 01 85 01 09 01 A1 00 05 09 19 01 29 02 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 02 81 02 95 06 81 03 05 01 09 30 25 7F 45 00 75 08 95 01 81 06 09 31 81 06 15 00 25 01 45 01 75 01 95 28 81 03 85 0E C1 00 06 00 FF 09 01 25 FF 45 00 75 08 95 01 B1 02 09 C5 95 03 B1 02 C1 00 (97 bytes) UsagePage 1 Usage 2 Collection 1 ReportID 1 Usage 1 Collection 0 UsagePage 9 UsageMinimum 1 UsageMaximum 2 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 2 Input 2 ReportCount 6 Input 3 UsagePage 1 Usage 48 LogicalMaximum 127 PhysicalMaximum 0 ReportSize 8 ReportCount 1 Input 6 Usage 49 Input 6 LogicalMinimum 0 LogicalMaximum 1 PhysicalMaximum 1 ReportSize 1 ReportCount 40 Input 3 ReportID 14 EndCollection 0 UsagePage 65280 Usage 1 LogicalMaximum 255 PhysicalMaximum 0 ReportSize 8 ReportCount 1 Feature 2 Usage 197 ReportCount 3 Feature 2 EndCollection 0 Usage: 10002 GenericDesktopMouse Input: ReportID=1, Length=9, Items=5 2 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 90001 Button1, 90002 Button2 6 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10030 GenericDesktopX 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: 10031 GenericDesktopY 40 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Feature: ReportID=14, Length=5, Items=2 1 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: FF000001 4278190081 3 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: FF0000C5 4278190277 Opening device for 20 seconds... Failed to open device. \\?\hid#vid_046d&pid_c534&mi_01&col04#7&2fa52f82&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) Max Lengths: Input 7, Output 7, Feature 0 Serial Ports: Report Descriptor: 06 00 FF 09 01 A1 01 85 10 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 30 81 03 91 03 C1 00 (31 bytes) UsagePage 65280 Usage 1 Collection 1 ReportID 16 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 48 Input 3 Output 3 EndCollection 0 Usage: FF000001 4278190081 Input: ReportID=16, Length=7, Items=1 48 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=16, Length=7, Items=1 48 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#elan0501&col02#5&10870616&1&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1267, PID 12384, version 0.3) Max Lengths: Input 12, Output 0, Feature 705 Serial Ports: Report Descriptor: 06 00 FF 09 01 A1 01 85 5C 09 01 15 00 25 FF 35 00 45 00 65 00 55 00 75 08 95 0B 81 06 85 0D 09 C5 95 04 B1 02 25 01 45 01 75 01 96 E0 15 B1 03 85 0C 09 C6 25 FF 45 00 75 08 96 C0 02 B1 02 85 0B 09 C7 95 42 B1 02 25 01 45 01 75 01 96 F0 13 B1 03 C1 00 (84 bytes) UsagePage 65280 Usage 1 Collection 1 ReportID 92 Usage 1 LogicalMinimum 0 LogicalMaximum 255 PhysicalMinimum 0 PhysicalMaximum 0 Unit 0 UnitExponent 0 ReportSize 8 ReportCount 11 Input 6 ReportID 13 Usage 197 ReportCount 4 Feature 2 LogicalMaximum 1 PhysicalMaximum 1 ReportSize 1 ReportCount 5600 Feature 3 ReportID 12 Usage 198 LogicalMaximum 255 PhysicalMaximum 0 ReportSize 8 ReportCount 704 Feature 2 ReportID 11 Usage 199 ReportCount 66 Feature 2 LogicalMaximum 1 PhysicalMaximum 1 ReportSize 1 ReportCount 5104 Feature 3 EndCollection 0 Usage: FF000001 4278190081 Input: ReportID=92, Length=12, Items=1 11 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Relative, Usages: FF000001 4278190081 Feature: ReportID=13, Length=705, Items=2 4 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: FF0000C5 4278190277 5600 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Feature: ReportID=12, Length=705, Items=1 704 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: FF0000C6 4278190278 Feature: ReportID=11, Length=705, Items=2 66 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: FF0000C7 4278190279 5104 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#hidclass&col02#1&2d595ca7&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} Acer Inc. Launch Manager Wireless Device (no serial number) (VID 11254, PID 41110, version 0.1) Max Lengths: Input 2, Output 0, Feature 0 Serial Ports: Report Descriptor: 05 01 09 0C A1 01 85 01 09 C6 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 06 95 07 81 03 C1 00 (34 bytes) UsagePage 1 Usage 12 Collection 1 ReportID 1 Usage 198 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Input 6 ReportCount 7 Input 3 EndCollection 0 Usage: 1000C 65548 Input: ReportID=1, Length=2, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: OneShot, Flags: Variable, Relative, Usages: 100C6 65734 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. \\?\hid#hidclass&col01#1&2d595ca7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Acer Inc. Launch Manager Wireless Device (no serial number) (VID 11254, PID 41110, version 0.1) Max Lengths: Input 17, Output 17, Feature 0 Serial Ports: Report Descriptor: 06 00 FF 09 01 A1 01 85 40 09 02 15 00 25 FF 35 00 45 00 65 00 55 00 75 08 95 10 81 02 09 02 91 02 C1 00 (35 bytes) UsagePage 65280 Usage 1 Collection 1 ReportID 64 Usage 2 LogicalMinimum 0 LogicalMaximum 255 PhysicalMinimum 0 PhysicalMaximum 0 Unit 0 UnitExponent 0 ReportSize 8 ReportCount 16 Input 2 Usage 2 Output 2 EndCollection 0 Usage: FF000001 4278190081 Input: ReportID=64, Length=17, Items=1 16 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: FF000002 4278190082 Output: ReportID=64, Length=17, Items=1 16 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: FF000002 4278190082 Opening device for 20 seconds... Opened device. Closed device. \\?\hid#elan0501&col03#5&10870616&1&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1267, PID 12384, version 0.3) Max Lengths: Input 12, Output 0, Feature 257 Serial Ports: Report Descriptor: 05 0D 09 05 A1 01 85 04 09 22 A1 02 09 47 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 02 09 42 81 02 95 02 81 03 09 51 25 0F 45 00 75 04 95 01 81 02 05 01 09 30 26 A2 0C 46 94 01 65 13 55 0E 75 10 81 02 09 31 26 26 09 46 24 01 81 02 C1 00 05 0D 09 56 26 FF FF 46 FF FF 66 01 10 55 0C 81 02 09 54 25 7F 75 08 81 02 05 09 09 01 25 01 45 01 65 00 55 00 75 01 81 02 95 07 81 03 09 C5 46 FF FF 66 01 10 55 0C 75 08 95 02 81 03 85 07 05 0D 09 60 45 01 65 00 55 00 75 01 95 01 B1 02 96 FF 07 B1 03 85 02 09 55 25 0F 46 FF FF 66 01 10 55 0C 75 04 95 01 B1 02 09 59 B1 02 25 01 45 01 65 00 55 00 75 01 96 F8 07 B1 03 85 06 06 00 FF 09 C5 25 FF 46 FF FF 66 01 10 55 0C 75 08 96 00 01 B1 02 C1 00 (231 bytes) UsagePage 13 Usage 5 Collection 1 ReportID 4 Usage 34 Collection 2 Usage 71 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Input 2 Usage 66 Input 2 ReportCount 2 Input 3 Usage 81 LogicalMaximum 15 PhysicalMaximum 0 ReportSize 4 ReportCount 1 Input 2 UsagePage 1 Usage 48 LogicalMaximum 3234 PhysicalMaximum 404 Unit 19 UnitExponent 14 ReportSize 16 Input 2 Usage 49 LogicalMaximum 2342 PhysicalMaximum 292 Input 2 EndCollection 0 UsagePage 13 Usage 86 LogicalMaximum 65535 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 Input 2 Usage 84 LogicalMaximum 127 ReportSize 8 Input 2 UsagePage 9 Usage 1 LogicalMaximum 1 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 Input 2 ReportCount 7 Input 3 Usage 197 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 ReportSize 8 ReportCount 2 Input 3 ReportID 7 UsagePage 13 Usage 96 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Feature 2 ReportCount 2047 Feature 3 ReportID 2 Usage 85 LogicalMaximum 15 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 ReportSize 4 ReportCount 1 Feature 2 Usage 89 Feature 2 LogicalMaximum 1 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 2040 Feature 3 ReportID 6 UsagePage 65280 Usage 197 LogicalMaximum 255 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 ReportSize 8 ReportCount 256 Feature 2 EndCollection 0 Usage: D0005 851973 Input: ReportID=4, Length=12, Items=11 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: D0047 852039 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: D0042 852034 2 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: 1 Elements x 4 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, Usages: D0051 852049 1 Elements x 16 Bits, Units: EnglishLinear, Expected Usage Type: 0, Flags: Variable, Usages: 10030 GenericDesktopX 1 Elements x 16 Bits, Units: EnglishLinear, Expected Usage Type: 0, Flags: Variable, Usages: 10031 GenericDesktopY 1 Elements x 16 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: D0056 852054 1 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: D0054 852052 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: 90001 Button1 7 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: 2 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Constant, Variable, Usages: 900C5 590021 Feature: ReportID=7, Length=257, Items=2 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: D0060 852064 2047 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Feature: ReportID=2, Length=257, Items=3 1 Elements x 4 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: D0055 852053 1 Elements x 4 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: D0059 852057 2040 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Feature: ReportID=6, Length=257, Items=1 256 Elements x 8 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: FF0000C5 4278190277 Opening device for 20 seconds... Failed to open device. \\?\hid#elan0501&col04#5&10870616&1&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} Microsoft HIDI2C Device 9999 (VID 1267, PID 12384, version 0.3) Max Lengths: Input 0, Output 0, Feature 3 Serial Ports: Report Descriptor: 05 0D 09 0E A1 01 85 05 09 22 A1 00 09 57 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 B1 02 09 58 B1 02 95 0E B1 03 85 03 C1 00 09 22 A1 00 09 52 25 0A 46 FF FF 66 01 10 55 0C 75 10 95 01 B1 02 C1 00 C1 00 (70 bytes) UsagePage 13 Usage 14 Collection 1 ReportID 5 Usage 34 Collection 0 Usage 87 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 1 Feature 2 Usage 88 Feature 2 ReportCount 14 Feature 3 ReportID 3 EndCollection 0 Usage 34 Collection 0 Usage 82 LogicalMaximum 10 PhysicalMaximum 65535 Unit 4097 UnitExponent 12 ReportSize 16 ReportCount 1 Feature 2 EndCollection 0 EndCollection 0 Usage: D000E 851982 Feature: ReportID=5, Length=3, Items=3 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: D0057 852055 1 Elements x 1 Bits, Units: None, Expected Usage Type: PushButton, Flags: Variable, Usages: D0058 852056 14 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Feature: ReportID=3, Length=3, Items=1 1 Elements x 16 Bits, Units: SILinear, Expected Usage Type: 0, Flags: Variable, Usages: D0052 852050 Opening device for 20 seconds... Opened device. Closed device. \\?\hid#vid_0925&pid_7001#6&18b7cc42&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Lakeview Research Generic HID (no serial number) (VID 2341, PID 28673, version 0.1) Max Lengths: Input 3, Output 3, Feature 3 Serial Ports: Report Descriptor: 06 00 FF 09 01 A1 01 85 01 09 00 15 00 25 FF 35 00 45 00 65 00 55 00 75 08 95 02 82 02 01 85 02 09 00 92 02 01 85 03 09 00 B2 02 01 85 04 09 00 B2 02 01 C1 00 (53 bytes) UsagePage 65280 Usage 1 Collection 1 ReportID 1 Usage 0 LogicalMinimum 0 LogicalMaximum 255 PhysicalMinimum 0 PhysicalMaximum 0 Unit 0 UnitExponent 0 ReportSize 8 ReportCount 2 Input 258 ReportID 2 Usage 0 Output 258 ReportID 3 Usage 0 Feature 258 ReportID 4 Usage 0 Feature 258 EndCollection 0 Usage: FF000001 4278190081 Input: ReportID=1, Length=3, Items=1 2 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, BufferedBytes, Usages: FF000000 4278190080 Output: ReportID=2, Length=3, Items=1 2 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, BufferedBytes, Usages: FF000000 4278190080 Feature: ReportID=3, Length=3, Items=1 2 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, BufferedBytes, Usages: FF000000 4278190080 Feature: ReportID=4, Length=3, Items=1 2 Elements x 8 Bits, Units: None, Expected Usage Type: 0, Flags: Variable, BufferedBytes, Usages: FF000000 4278190080 Opening device for 20 seconds... Opened device. Closed device. Press a key to exit... ```
AWBuchanan7 commented 3 years ago

I seemed to be having a similar problem with a different device. HIDSharp appeared fine with it and this program worked fine without it plugged in. At least in my case it turned out that the 'manufacturer' value associated with the device was null so as a result when I reached this line in Program.cs:

Console.Write(string.Format("{0:X4}:{1:X4}: {2} - {3}\nPATH:{4}\n",
                    dev.VendorID, dev.ProductID, dev.GetManufacturer(), dev.GetProductName(), dev.DevicePath));

The dev.GetManufacturer() would result in an exception. Replacing the GetManufacturer() call with a placeholder string got things working for me. I'm not sure how commonplace a null value for any of these fields might actually be as my device here is essentially in testing and values that should be there are currently either placeholders or left empty, but for example I would think that a null product name would result in this issue as well. A null check or two here might solve the problem.

mcuee commented 3 years ago

In my case it is different, it has no issues with "dev.GetManufacturer(), dev.GetProductName(), dev.DevicePath)" but crashes since it can not carry out the operation GetRawReportDescriptor().

The exception points to HIDSharp but HIDSharpDemo seems not to crash, strange. Here I am using git head of HIDSharp.

PATH:\?\hid#vid_046d&pid_c534&mi_01&col02#7&2fa52f82&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} is recognized in Windows as "HID-complaint consumer control device".

04F3:3060: Microsoft - HIDI2C Device
PATH:\\?\hid#elan0501&col01#5&10870616&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  01  09  02  A1  01  85  01  09  01  A1  00  05  09  19  01
  29  02  15  00  25  01  35  00  45  01  65  00  55  00  75  01
  95  02  81  02  95  06  81  03  05  01  09  30  25  7F  45  00
  75  08  95  01  81  06  09  31  81  06  15  00  25  01  45  01
  75  01  95  28  81  03  85  0E  C1  00  06  00  FF  09  01  25
  FF  45  00  75  08  95  01  B1  02  09  C5  95  03  B1  02  C1
  00
  (97 bytes)
04F3:3060: Microsoft - HIDI2C Device
PATH:\\?\hid#elan0501&col02#5&10870616&1&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  01  A1  01  85  5C  09  01  15  00  25  FF  35
  00  45  00  65  00  55  00  75  08  95  0B  81  06  85  0D  09
  C5  95  04  B1  02  25  01  45  01  75  01  96  E0  15  B1  03
  85  0C  09  C6  25  FF  45  00  75  08  96  C0  02  B1  02  85
  0B  09  C7  95  42  B1  02  25  01  45  01  75  01  96  F0  13
  B1  03  C1  00
  (84 bytes)
046D:C534: Logitech - USB Receiver
PATH:\\?\hid#vid_046d&pid_c534&mi_01&col05#7&2fa52f82&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  02  A1  01  85  11  15  00  25  01  35  00  45
  01  65  00  55  00  75  01  95  98  81  03  91  03  C1  00
  (31 bytes)
04F3:3060: Microsoft - HIDI2C Device
PATH:\\?\hid#elan0501&col03#5&10870616&1&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  0D  09  05  A1  01  85  04  09  22  A1  02  09  47  15  00
  25  01  35  00  45  01  65  00  55  00  75  01  95  01  81  02
  09  42  81  02  95  02  81  03  09  51  25  0F  45  00  75  04
  95  01  81  02  05  01  09  30  26  A2  0C  46  94  01  65  13
  55  0E  75  10  81  02  09  31  26  26  09  46  24  01  81  02
  C1  00  05  0D  09  56  26  FF  FF  46  FF  FF  66  01  10  55
  0C  81  02  09  54  25  7F  75  08  81  02  05  09  09  01  25
  01  45  01  65  00  55  00  75  01  81  02  95  07  81  03  09
  C5  46  FF  FF  66  01  10  55  0C  75  08  95  02  81  03  85
  07  05  0D  09  60  45  01  65  00  55  00  75  01  95  01  B1
  02  96  FF  07  B1  03  85  02  09  55  25  0F  46  FF  FF  66
  01  10  55  0C  75  04  95  01  B1  02  09  59  B1  02  25  01
  45  01  65  00  55  00  75  01  96  F8  07  B1  03  85  06  06
  00  FF  09  C5  25  FF  46  FF  FF  66  01  10  55  0C  75  08
  96  00  01  B1  02  C1  00
  (231 bytes)
2BF6:A096: Acer Inc. - Launch Manager Wireless Device
PATH:\\?\hid#hidclass&col01#1&2d595ca7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  06  00  FF  09  01  A1  01  85  40  09  02  15  00  25  FF  35
  00  45  00  65  00  55  00  75  08  95  10  81  02  09  02  91
  02  C1  00
  (35 bytes)
2BF6:A096: Acer Inc. - Launch Manager Wireless Device
PATH:\\?\hid#hidclass&col02#1&2d595ca7&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  01  09  0C  A1  01  85  01  09  C6  15  00  25  01  35  00
  45  01  65  00  55  00  75  01  95  01  81  06  95  07  81  03
  C1  00
  (34 bytes)
04F3:3060: Microsoft - HIDI2C Device
PATH:\\?\hid#elan0501&col04#5&10870616&1&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
  05  0D  09  0E  A1  01  85  05  09  22  A1  00  09  57  15  00
  25  01  35  00  45  01  65  00  55  00  75  01  95  01  B1  02
  09  58  B1  02  95  0E  B1  03  85  03  C1  00  09  22  A1  00
  09  52  25  0A  46  FF  FF  66  01  10  55  0C  75  10  95  01
  B1  02  C1  00  C1  00
  (70 bytes)
046D:C534: Logitech - USB Receiver
PATH:\\?\hid#vid_046d&pid_c534&mi_00#7&73a81b9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
DESCRIPTOR:
  05  01  09  06  A1  01  05  07  19  E0  29  E7  15  00  25  01
  35  00  45  01  65  00  55  00  75  01  95  08  81  02  95  38
  81  03  05  08  19  01  29  05  95  05  91  02  95  03  91  03
  C1  00
  (50 bytes)
046D:C534: Logitech - USB Receiver
PATH:\\?\hid#vid_046d&pid_c534&mi_01&col02#7&2fa52f82&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}

Call stack

HidSharp.dll!HidSharp.Platform.Windows.WinHidDevice.GetRawReportDescriptor() Line 194
    at C:\work\hid\HidSharp\HidSharp\Platform\Windows\WinHidDevice.cs(194)
winhiddump.exe!winhiddump.Program.Main(string[] args) Line 32
    at C:\work\hid\win-hid-dump\Program.cs(32)
mcuee commented 3 years ago

It is a pretty complicated device. https://github.com/libusb/hidapi/issues/249#issuecomment-864510041

Example Logitech USB Receiver. It is a USB Composite Device, under Windows Device Manager, it will show as 9 devices, one USB Composite Device parent, then six devices in Human Interface Devices section, one in mouse and one in keyboard.

HIDSharp will show it as six HID devices, one for Interface 0, one for each top level collection of Interface 1 (col 1/2/3/4/5)..

Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col02#7&2fa52f82&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}

Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_00#7&73a81b9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd

Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col01#7&2fa52f82&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}

Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col04#7&2fa52f82&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}

Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col03#7&2fa52f82&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}

Logitech USB Receiver (no serial number) (VID 1133, PID 50484, version 29.1) @ \\?\hid#vid_046d&pid_c534&mi_01&col05#7&2fa52f82&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}

USB Prober output from Mac Mini M1.

click to expand ``` Full Speed device @ 22 (0x02146000): ............................................. Composite device: "USB Receiver" Port Information: 0x0018 Not Captive External Device Connected Enabled Number Of Endpoints (includes EP0): Total Endpoints for Configuration 1 (current): 3 Device Descriptor Descriptor Version Number: 0x0200 Device Class: 0 (Composite) Device Subclass: 0 Device Protocol: 0 Device MaxPacketSize: 8 Device VendorID/ProductID: 0x046D/0xC534 (Logitech Inc.) Device Version Number: 0x2901 Number of Configurations: 1 Manufacturer String: 1 "Logitech" Product String: 2 "USB Receiver" Serial Number String: 0 (none) Configuration Descriptor (current config): ...................... "RQR29.01_B0016" Length (and contents): 59 Raw Descriptor (hex) 0000: 09 02 3B 00 02 01 04 A0 31 09 04 00 00 01 03 01 Raw Descriptor (hex) 0010: 01 00 09 21 11 01 00 01 22 3B 00 07 05 81 03 08 Raw Descriptor (hex) 0020: 00 08 09 04 01 00 01 03 01 02 00 09 21 11 01 00 Raw Descriptor (hex) 0030: 01 22 B1 00 07 05 82 03 14 00 02 Number of Interfaces: 2 Configuration Value: 1 Attributes: 0xA0 (bus-powered, remote wakeup) MaxPower: 98 mA Interface #0 - HID/Boot Interface Alternate Setting 0 Number of Endpoints 1 Interface Class: 3 (HID) Interface Subclass; 1 (Boot Interface) Interface Protocol: 1 HID Descriptor Descriptor Version Number: 0x0111 Country Code: 0 Descriptor Count: 1 Descriptor 1 Type: 0x22 (Report Descriptor) Length (and contents): 59 Raw Descriptor (hex) 0000: 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01 Raw Descriptor (hex) 0010: 75 01 95 08 81 02 81 03 95 05 05 08 19 01 29 05 Raw Descriptor (hex) 0020: 91 02 95 01 75 03 91 01 95 06 75 08 15 00 26 A4 Raw Descriptor (hex) 0030: 00 05 07 19 00 2A A4 00 81 00 C0 Parsed Report Descriptor: Usage Page (Generic Desktop) Usage (Keyboard) Collection (Application) Usage Page (Keyboard/Keypad) Usage Minimum........... (224) Usage Maximum........... (231) Logical Minimum......... (0) Logical Maximum......... (1) Report Size............. (1) Report Count............ (8) Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Input................... (Constant, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Report Count............ (5) Usage Page (LED) Usage Minimum........... (1) Usage Maximum........... (5) Output.................. (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) Report Count............ (1) Report Size............. (3) Output.................. (Constant, Array, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) Report Count............ (6) Report Size............. (8) Logical Minimum......... (0) Logical Maximum......... (164) Usage Page (Keyboard/Keypad) Usage Minimum........... (0) Usage Maximum........... (164) Input................... (Data, Array, Absolute) End Collection Endpoint 0x81 - Interrupt Input Address: 0x81 (IN) Attributes: 0x03 (Interrupt) Max Packet Size: 8 Polling Interval: 8 ms Interface #1 - HID/Boot Interface Alternate Setting 0 Number of Endpoints 1 Interface Class: 3 (HID) Interface Subclass; 1 (Boot Interface) Interface Protocol: 2 HID Descriptor Descriptor Version Number: 0x0111 Country Code: 0 Descriptor Count: 1 Descriptor 1 Type: 0x22 (Report Descriptor) Length (and contents): 177 Raw Descriptor (hex) 0000: 05 01 09 02 A1 01 85 02 09 01 A1 00 05 09 19 01 Raw Descriptor (hex) 0010: 29 10 15 00 25 01 95 10 75 01 81 02 05 01 16 01 Raw Descriptor (hex) 0020: F8 26 FF 07 75 0C 95 02 09 30 09 31 81 06 15 81 Raw Descriptor (hex) 0030: 25 7F 75 08 95 01 09 38 81 06 05 0C 0A 38 02 95 Raw Descriptor (hex) 0040: 01 81 06 C0 C0 05 0C 09 01 A1 01 85 03 75 10 95 Raw Descriptor (hex) 0050: 02 15 01 26 8C 02 19 01 2A 8C 02 81 00 C0 05 01 Raw Descriptor (hex) 0060: 09 80 A1 01 85 04 75 02 95 01 15 01 25 03 09 82 Raw Descriptor (hex) 0070: 09 81 09 83 81 60 75 06 81 03 C0 06 00 FF 09 01 Raw Descriptor (hex) 0080: A1 01 85 10 75 08 95 06 15 00 26 FF 00 09 01 81 Raw Descriptor (hex) 0090: 00 09 01 91 00 C0 06 00 FF 09 02 A1 01 85 11 75 Raw Descriptor (hex) 00a0: 08 95 13 15 00 26 FF 00 09 02 81 00 09 02 91 00 Raw Descriptor (hex) 00b0: C0 Parsed Report Descriptor: Usage Page (Generic Desktop) Usage (Mouse) Collection (Application) ReportID................ (2) Usage (Pointer) Collection (Physical) Usage Page (Button) Usage Minimum........... (1) Usage Maximum........... (16) Logical Minimum......... (0) Logical Maximum......... (1) Report Count............ (16) Report Size............. (1) Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Usage Page (Generic Desktop) Logical Minimum......... (-2047) Logical Maximum......... (2047) Report Size............. (12) Report Count............ (2) Usage (X) Usage (Y) Input................... (Data, Variable, Relative, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Logical Minimum......... (-127) Logical Maximum......... (127) Report Size............. (8) Report Count............ (1) Usage (Wheel) Input................... (Data, Variable, Relative, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Usage Page (Consumer) Usage 568 (0x238) Report Count............ (1) Input................... (Data, Variable, Relative, No Wrap, Linear, Preferred State, No Null Position, Bitfield) End Collection End Collection Usage Page (Consumer) Usage 1 (0x1) Collection (Application) ReportID................ (3) Report Size............. (16) Report Count............ (2) Logical Minimum......... (1) Logical Maximum......... (652) Usage Minimum........... (1) Usage Maximum........... (652) Input................... (Data, Array, Absolute) End Collection Usage Page (Generic Desktop) Usage (System Control) Collection (Application) ReportID................ (4) Report Size............. (2) Report Count............ (1) Logical Minimum......... (1) Logical Maximum......... (3) Usage (System Sleep) Usage (System Power Down) Usage (System Wakeup) Input................... (Data, Array, Absolute) Report Size............. (6) Input................... (Constant, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) End Collection Usage Page (Vendor defined 0) Usage 1 (0x1) Collection (Application) ReportID................ (16) Report Size............. (8) Report Count............ (6) Logical Minimum......... (0) Logical Maximum......... (255) Usage 1 (0x1) Input................... (Data, Array, Absolute) Usage 1 (0x1) Output.................. (Data, Array, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) End Collection Usage Page (Vendor defined 0) Usage 2 (0x2) Collection (Application) ReportID................ (17) Report Size............. (8) Report Count............ (19) Logical Minimum......... (0) Logical Maximum......... (255) Usage 2 (0x2) Input................... (Data, Array, Absolute) Usage 2 (0x2) Output.................. (Data, Array, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) End Collection Endpoint 0x82 - Interrupt Input Address: 0x82 (IN) Attributes: 0x03 (Interrupt) Max Packet Size: 20 Polling Interval: 2 ms ```
mcuee commented 3 years ago

If I use the fork here ( https://github.com/afinetapestry/win-hid-dump/tree/main ), the exception seems to point to HIDSharp.

System.NotSupportedException
  HResult=0x80131515
  Message=Unable to reconstruct the report descriptor.
  Source=HidSharp
  StackTrace:
   at HidSharp.Platform.Windows.WinHidDevice.GetRawReportDescriptor()
   at winhiddump.Program.Main(String[] args) in C:\work\hid\win-hid-dump-mod\Program.cs:line 62
WORMSS commented 3 years ago

I get the same issue with Logitech - USB Reciever. It being the first thing it reports, and dying immediately. Going to try with no mouse, see what happens.

WORMSS commented 3 years ago

okay, I found out it was my dasKeyboard that was the cause.. and of course, it was the last USB device I had to try.

Ended up using a automation program, to press enter on the command line window, after 10 seconds to giving me enough time to start it and remove ALL other USB devices other than the one I wanted a report on

mcuee commented 3 years ago

Please refer to this thread: https://github.com/libusb/hidapi/issues/249 HIDSharp is not very good for this task in reality. The resulting HID report descriptors are often not correct. This is not the fault of HIDSharp though, rather it is the limitation of Windows native HID API.

The following hidapi pull request has the same limitations. https://github.com/libusb/hidapi/pull/262

So far the best effort is here using reverse engineering. But it still needs more efforts. https://github.com/libusb/hidapi/pull/306

imro2 commented 2 years ago

Could you put the problematic line in try catch block so it does not fail because of a single device?

            try
            {
                rawReportDescriptor = dev.GetRawReportDescriptor();
            } catch (Exception e) { 
                Console.Write("Unable to parse report: {0}", e);
            }
MauiJerry commented 2 years ago

Trying out winHIDdump to learn a bit about the Videonics CP1 device found in my wtf boxes. It shows up in Device Manager under HDI as USB Input Device. The properties/Events shows "Device Not Migrated" event: Device USB\VID_0947&PID_CF01\5&2edb8ad2&0&2 was not migrated due to partial or ambiguous match.

Last Device Instance Id: USB\VID_1038&PID_2006&MI_00\2&5e99c07&0&0000 Class Guid: {745a17a0-74d3-11d0-b6fe-00a0c90f57da} Location Path: Migration Rank: 0xF000FFFF0000F120 Present: false Status: 0xC0000719

winHIDdump says: C:\Users\jerry\Downloads\winhiddump>.\winhiddump.exe WinHIDdump: 04F3:30FA: Microsoft - HIDI2C Device PATH:\?\hid#cust0001&col03#5&2f1d7da6&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}

Unhandled Exception: System.NotSupportedException: Unable to reconstruct the report descriptor. at HidSharp.Platform.Windows.WinHidDevice.GetRawReportDescriptor() at winhiddump.Program.Main(String[] args)

My guess is the device is so old (pre-2000) and vendor gone, that its all unknown to MS. Oh well. maybe I can scavenge it for parts or put in a rPiPico

update: i grabbed https://github.com/rene-aguirre/pywinusb and the raw_data.py was able to read all the buttons, sticks, etc on the CP1.

SteveC00k commented 2 years ago

It crashes on me too. I unplugged my wacom tablet and its not crashing now. It does crash with the generic xbox controller btw

WinHIDdump: 258A:002A: SINO WEALTH - Gaming KB PATH:\?\hid#vid_258a&pid_002a&mi_01&col06#7&af6b46a&0&0005#{4d1e55b2-f16f-11cf-88cb-001111000030} DESCRIPTOR: 06 00 FF 09 01 A1 01 85 0A 09 00 15 00 25 FF 35 00 45 00 65 00 55 00 75 08 95 29 B1 02 C1 00 (31 bytes) 08BB:2902: Burr-Brown from TI - USB Audio CODEC PATH:\?\hid#vid_08bb&pid_2902&mi_03#8&1f3c160&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} DESCRIPTOR: 05 0C 09 01 A1 01 09 E2 15 00 25 01 35 00 45 01 65 00 55 00 75 01 95 01 81 42 09 E9 81 42 09 EA 81 42 95 05 81 03 C1 00 (40 bytes) 056A:00F4: Tablet - Cintiq 24HD Tablet PATH:\?\hid#vid_056a&pid_00f4&col02#8&2d57ec0f&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}

Unhandled Exception: System.NotSupportedException: Unable to reconstruct the report descriptor. at HidSharp.Platform.Windows.WinHidDevice.GetRawReportDescriptor() at winhiddump.Program.Main(String[] args)

todbot commented 2 years ago

Both of these are HidSharp library error, a library that win-hid-dump is a very thin wrapper on.

You could try running the HidSharp library's HidSharp.Test.exe that's inside the HidSharp zip file. If it also errors out, then there's nothing I know of in Windows you can do to get the HID Report Descriptor. Use Linux or MacOS instead.

HidSharp is doing a kind of reconstruction of the HID Report Descriptor since Windows does not support interrogating the device directly for this information.

I think that error can occur for devices that are not true HID devices (i.e. a device with a driver that creates a "virtual HID" device for applications to use. I think XBox controllers do this) or devices that have a custom driver that overrides the default HID driver.

Again, try your device on a different OS or even a different Windows box that doesn't have any extra drivers for the device installed.

SteveC00k commented 2 years ago

Where is this HidSharp.test.exe? I do not see any HidSharp.zip either.

imro2 commented 2 years ago

For anybody that is having issues with win-hid-dump or HidSharp due to Windows limitations, try installing WSL2 (WSL1 does not support USB device redirection) and redirecting your HID device to it and then use the Linux based usbhid-dump.

todbot commented 2 years ago

Where is this HidSharp.test.exe? I do not see any HidSharp.zip either.

Sorry I didn't provide a direct link earlier: https://www.zer7.com/software/hidsharp

That's the homepage for HidSharp. On it is a zip download containing the library and the test file.

mcuee commented 2 years ago

I think in the end hidsharp will not work very well with many devices under Windows.

The best effors are here to try to get Windows working with hidapi and Report Descriptor, using reverse engineering approach. https://github.com/libusb/hidapi/tree/get-descriptor

Discussions and many test reports here. https://github.com/libusb/hidapi/issues/249

mcuee commented 2 years ago

For anybody that is having issues with win-hid-dump or HidSharp due to Windows limitations, try installing WSL2 (WSL1 does not support USB device redirection) and redirecting your HID device to it and then use the Linux based usbhid-dump.

Nice idea.

For me I just reboot my Windows laptop to Linux since I use dual-boot. :-)

Or I will use my Mac Mini.

mcuee commented 1 year ago

has been closed with the merge of https://github.com/libusb/hidapi/pull/451.

So if people are having issues with win-hid-dump or HIDSharp, you can try latest git of hidapi which inlcude the hidtest application. hidtest will dump the report descriptors of the HID devices.