WIP: Implemented Windows Report-Descriptor Reconstructor #262

Closed
JoergAtGithub wants to merge 18 commits from windows_report_descriptor_reconstructor into get-descriptor
JoergAtGithub commented 2021-04-10 07:24:10 -05:00 (Migrated from github.com)

This is implements code to reconstruct a HID report descriptor using from the information provide by the Windows API.

The code contains debug printout and it writes a text file of the reconstructed report descriptor bytes into one text file per HID device, which can be read by visualization tools like: https://eleccelerator.com/usbdescreqparser/

In most cases the generated report descriptor is logical identical to the original, which I read using the free version of USBlyszer. But it's not byte wise identical. The order of the bytes differ, handling of reundant information differs and padding bits can be defined in a different way.

This is implements code to reconstruct a HID report descriptor using from the information provide by the Windows API. The code contains debug printout and it writes a text file of the reconstructed report descriptor bytes into one text file per HID device, which can be read by visualization tools like: https://eleccelerator.com/usbdescreqparser/ In most cases the generated report descriptor is logical identical to the original, which I read using the free version of USBlyszer. But it's not byte wise identical. The order of the bytes differ, handling of reundant information differs and padding bits can be defined in a different way. - [ ] There is one real limitation, where i couldn't find a way to reconstruct the correct logical meaning: If multiple button bit field have the Usage 0, it seems impossible to determine the bit positions, because in case of zero, API functions like HidP_SetUsageValueArray do not set any bit. - [ ] There is one solveable bug the determition Report Count for ValueArrays with UsageMin...UsageMax specified. This special case is handled by win-hid-dump (https://github.com/IntergatedCircuits/HidSharp/blob/e8359220e0cdb1541844835055f5f19af02a9f4c/HidSharp/Platform/Windows/WinHidDevice.ReportDescriptorReconstructor.cs#L161) correct but not in this PR (https://github.com/libusb/hidapi/blob/b54a041cad6dee24703bc5baa0db0aa71f068e51/windows/hid.c#L871) But the win-hid-dump implementation proves, that this is solveable based on the data provided by WIN32 API
Youw commented 2021-04-10 07:35:49 -05:00 (Migrated from github.com)

Lets have this against feature branch: https://github.com/libusb/hidapi/tree/get-descriptor
When we have implementation for all platforms - we will merge to master

Lets have this against feature branch: https://github.com/libusb/hidapi/tree/get-descriptor When we have implementation for all platforms - we will merge to master
DJm00n commented 2021-04-15 09:12:02 -05:00 (Migrated from github.com)
Link for reference: https://github.com/IntergatedCircuits/HidSharp/blob/master/HidSharp/Platform/Windows/WinHidDevice.ReportDescriptorReconstructor.cs
DJm00n commented 2021-04-17 11:57:08 -05:00 (Migrated from github.com)

@JoergAtGithub After several attempts I finally managed how to get USB HID Report Descriptors from device!

You can do it via specially crafted IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION call on parent USB HUB device.
See my fork of usbview tool: https://github.com/DJm00n/Windows-driver-samples/tree/usb-hid-descriptor

image

@JoergAtGithub After several attempts I finally managed how to get USB HID Report Descriptors from device! You can do it via specially crafted `IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION` call on parent USB HUB device. See my fork of usbview tool: https://github.com/DJm00n/Windows-driver-samples/tree/usb-hid-descriptor ![image](https://user-images.githubusercontent.com/1285934/115120605-049a8880-9fb7-11eb-8204-143e0863d6b0.png)
JoergAtGithub commented 2021-04-17 12:09:38 -05:00 (Migrated from github.com)

Until now, I believed this is impossible for a user space application. Fantastic!
To get the original report descriptor from the device is clearly better than any reconstruction approach!

Until now, I believed this is impossible for a user space application. Fantastic! To get the original report descriptor from the device is clearly better than any reconstruction approach!
JoergAtGithub commented 2021-04-17 13:22:02 -05:00 (Migrated from github.com)

I just tried your code on Win7 VS2019, but got just this error message:

===>HID Descriptor<===

bLength:                           0x09
bDescriptorType:                   0x21
bcdHID:                          0x0111
bCountryCode:                      0x00
bNumDescriptors:                   0x01
bDescriptorType:                   0x22 (Report Descriptor)
wDescriptorLength:               0x002E
*!*ERROR:  No HID Descriptor for interface 0!
I just tried your code on Win7 VS2019, but got just this error message: ===>HID Descriptor<=== ``` bLength: 0x09 bDescriptorType: 0x21 bcdHID: 0x0111 bCountryCode: 0x00 bNumDescriptors: 0x01 bDescriptorType: 0x22 (Report Descriptor) wDescriptorLength: 0x002E *!*ERROR: No HID Descriptor for interface 0! ```
DJm00n commented 2021-04-17 13:48:35 -05:00 (Migrated from github.com)

@JoergAtGithub can you paste whole output for this device?

@JoergAtGithub can you paste whole output for this device?
JoergAtGithub commented 2021-04-17 13:50:18 -05:00 (Migrated from github.com)

[Port2] : USB-Eingabegerät

Device Power State:               PowerDeviceD0

       ---===>Device Information<===---
English product name: "USB Optical Mouse"

ConnectionStatus:                  
Current Config Value:              0x01  -> Device Bus Speed: Low
Device Address:                    0x01
Open Pipes:                           1

          ===>Device Descriptor<===
bLength:                           0x12
bDescriptorType:                   0x01
bcdUSB:                          0x0200
bDeviceClass:                      0x00  -> This is an Interface Class Defined Device
bDeviceSubClass:                   0x00
bDeviceProtocol:                   0x00
bMaxPacketSize0:                   0x08 = (8) Bytes
idVendor:                        0x046D = Logitech Inc.
idProduct:                       0xC077
bcdDevice:                       0x7200
iManufacturer:                     0x01
     English (United States)  "Logitech"
iProduct:                          0x02
     English (United States)  "USB Optical Mouse"
iSerialNumber:                     0x00
bNumConfigurations:                0x01

          ---===>Open Pipes<===---

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0004
bInterval:                         0x0A

       ---===>Full Configuration Descriptor<===---

          ===>Configuration Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x02
wTotalLength:                    0x0022  -> Validated
bNumInterfaces:                    0x01
bConfigurationValue:               0x01
iConfiguration:                    0x00
bmAttributes:                      0xA0  -> Bus Powered
  -> Remote Wakeup
MaxPower:                          0x32 = 100 mA

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x00
bAlternateSetting:                 0x00
bNumEndpoints:                     0x01
bInterfaceClass:                   0x03  -> HID Interface Class
bInterfaceSubClass:                0x01  -> HID Boot Interface Subclass
bInterfaceProtocol:                0x02  -> HID Mouse Boot Protocol
iInterface:                        0x00

          ===>HID Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x21
bcdHID:                          0x0111
bCountryCode:                      0x00
bNumDescriptors:                   0x01
bDescriptorType:                   0x22 (Report Descriptor)
wDescriptorLength:               0x002E
*!*ERROR:  No HID Descriptor for interface 0!

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0004
bInterval:                         0x0A
[Port2] : USB-Eingabegerät ``` Device Power State: PowerDeviceD0 ---===>Device Information<===--- English product name: "USB Optical Mouse" ConnectionStatus: Current Config Value: 0x01 -> Device Bus Speed: Low Device Address: 0x01 Open Pipes: 1 ===>Device Descriptor<=== bLength: 0x12 bDescriptorType: 0x01 bcdUSB: 0x0200 bDeviceClass: 0x00 -> This is an Interface Class Defined Device bDeviceSubClass: 0x00 bDeviceProtocol: 0x00 bMaxPacketSize0: 0x08 = (8) Bytes idVendor: 0x046D = Logitech Inc. idProduct: 0xC077 bcdDevice: 0x7200 iManufacturer: 0x01 English (United States) "Logitech" iProduct: 0x02 English (United States) "USB Optical Mouse" iSerialNumber: 0x00 bNumConfigurations: 0x01 ---===>Open Pipes<===--- ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x81 -> Direction: IN - EndpointID: 1 bmAttributes: 0x03 -> Interrupt Transfer Type wMaxPacketSize: 0x0004 bInterval: 0x0A ---===>Full Configuration Descriptor<===--- ===>Configuration Descriptor<=== bLength: 0x09 bDescriptorType: 0x02 wTotalLength: 0x0022 -> Validated bNumInterfaces: 0x01 bConfigurationValue: 0x01 iConfiguration: 0x00 bmAttributes: 0xA0 -> Bus Powered -> Remote Wakeup MaxPower: 0x32 = 100 mA ===>Interface Descriptor<=== bLength: 0x09 bDescriptorType: 0x04 bInterfaceNumber: 0x00 bAlternateSetting: 0x00 bNumEndpoints: 0x01 bInterfaceClass: 0x03 -> HID Interface Class bInterfaceSubClass: 0x01 -> HID Boot Interface Subclass bInterfaceProtocol: 0x02 -> HID Mouse Boot Protocol iInterface: 0x00 ===>HID Descriptor<=== bLength: 0x09 bDescriptorType: 0x21 bcdHID: 0x0111 bCountryCode: 0x00 bNumDescriptors: 0x01 bDescriptorType: 0x22 (Report Descriptor) wDescriptorLength: 0x002E *!*ERROR: No HID Descriptor for interface 0! ===>Endpoint Descriptor<=== bLength: 0x07 bDescriptorType: 0x05 bEndpointAddress: 0x81 -> Direction: IN - EndpointID: 1 bmAttributes: 0x03 -> Interrupt Transfer Type wMaxPacketSize: 0x0004 bInterval: 0x0A ```
JoergAtGithub commented 2021-04-17 13:52:27 -05:00 (Migrated from github.com)

I get this message for all HID devices I've, except the keyboard. There I get a bytes, but they are not a report descriptor.

I get this message for all HID devices I've, except the keyboard. There I get a bytes, but they are not a report descriptor.
DJm00n commented 2021-04-17 14:58:28 -05:00 (Migrated from github.com)

I cannot get descriptor my mouse too. Seems that is because of active boot protocol on it:

bInterfaceClass: 0x03 -> HID Interface Class
bInterfaceSubClass: 0x01 -> HID Boot Interface Subclass
bInterfaceProtocol: 0x02 -> HID Mouse Boot Protocol

I can get descriptors on my keyboard and DualShock4 .

Also there seems some memleak in code. I’ll try to debug further.

I cannot get descriptor my mouse too. Seems that is because of active boot protocol on it: ```cpp bInterfaceClass: 0x03 -> HID Interface Class bInterfaceSubClass: 0x01 -> HID Boot Interface Subclass bInterfaceProtocol: 0x02 -> HID Mouse Boot Protocol ``` I can get descriptors on my keyboard and DualShock4 . Also there seems some memleak in code. I’ll try to debug further.
DJm00n commented 2021-04-28 13:08:49 -05:00 (Migrated from github.com)

Its sad but I don't know why it is working with my DualShock4.

According to docs of IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION USB stack ignores the value of bmRequest and inserts a value of 0x80 (Endpoint_In). But to do proper HID Report Descriptor request over USB I need to do such request with 0x81 (Interface_In) value to do request on corresponding Interface.

Seems there is no any way to do HID Report Descriptor request from userspace properly...

Its sad but I don't know why it is working with my DualShock4. [According to docs](https://docs.microsoft.com/windows-hardware/drivers/ddi/usbioctl/ns-usbioctl-_usb_descriptor_request) of `IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION` USB stack ignores the value of `bmRequest` and inserts a value of `0x80` (Endpoint_In). But to do proper HID Report Descriptor request over USB I need to do such request with `0x81` (Interface_In) value to do request on corresponding Interface. Seems there is no any way to do HID Report Descriptor request from userspace properly...
DJm00n commented 2021-04-28 13:16:50 -05:00 (Migrated from github.com)

Also I found another descriptor reconstruction code in Chromium:
https://bugs.chromium.org/p/chromium/issues/detail?id=1009717
github.com/chromium/chromium@73fdaaf605

They reverse-engineered HIDP_PREPARSED_DATA struct defining PreparsedDataHeader and PreparsedDataItem structs and trying to output Report Descriptor from it. See CreateHidCollectionInfo(). Maybe could be useful.

Also I found another descriptor reconstruction code in Chromium: https://bugs.chromium.org/p/chromium/issues/detail?id=1009717 https://github.com/chromium/chromium/commit/73fdaaf605bb60caf34d5f30bb84a417688aa528 They reverse-engineered `HIDP_PREPARSED_DATA` struct defining `PreparsedDataHeader` and `PreparsedDataItem` structs and trying to output Report Descriptor from it. See `CreateHidCollectionInfo()`. Maybe could be useful.
JoergAtGithub commented 2021-04-28 14:58:02 -05:00 (Migrated from github.com)

Sad, that IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION does not read the real ReportDescriptor for all devices.

The reverse-engineered HIDP_PREPARSED_DATA struct from Chromium might be helpfull to:

  • might be a solution for the "multiple button bit field have the Usage 0" case, where the reconstructors struggles due to not matching errors returned by the functions to read teh pre-parsed data. But I fear that the failure is already inside the preparsed data.
  • write a unit test for the reconstructor. The only input data for the reconstructor are the preparsed data. If we could store the preparsed data of an HID device in a file, we could use it for unit testing without hardware.

Did you try the reconstructor from this PR? Did it work for your devices?

Sad, that IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION does not read the real ReportDescriptor for all devices. The reverse-engineered HIDP_PREPARSED_DATA struct from Chromium might be helpfull to: - might be a solution for the "multiple button bit field have the Usage 0" case, where the reconstructors struggles due to not matching errors returned by the functions to read teh pre-parsed data. But I fear that the failure is already inside the preparsed data. - write a unit test for the reconstructor. The only input data for the reconstructor are the preparsed data. If we could store the preparsed data of an HID device in a file, we could use it for unit testing without hardware. Did you try the reconstructor from this PR? Did it work for your devices?
Be-ing commented 2021-05-17 15:25:30 -05:00 (Migrated from github.com)

You can do it via specially crafted IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION call on parent USB HUB device.

That assumes the HID device is a USB device though. Couldn't it be Bluetooth?

> You can do it via specially crafted IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION call on parent USB HUB device. That assumes the HID device is a USB device though. Couldn't it be Bluetooth?
Youw commented 2021-05-17 15:39:01 -05:00 (Migrated from github.com)

Not for libusb backend, of course.

~~Not for libusb backend, of course.~~
Be-ing commented 2021-05-17 15:50:12 -05:00 (Migrated from github.com)

Right, but this PR is for the Windows backend.

Right, but this PR is for the Windows backend.
JoergAtGithub commented 2021-05-17 16:05:13 -05:00 (Migrated from github.com)

This PR doesn't use IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION and should also work for Bluetooth HID

This PR doesn't use IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION and should also work for Bluetooth HID
Youw commented 2021-05-17 16:09:56 -05:00 (Migrated from github.com)

Right, but this PR is for the Windows backend.

Ah, pardon me, mentally I was still thinking about the other issue we discussed today.

> Right, but this PR is for the Windows backend. Ah, pardon me, mentally I was still thinking about the other issue we discussed today.
DJm00n commented 2021-06-17 05:54:22 -05:00 (Migrated from github.com)

@JoergAtGithub hi!
I have rewritten my code that is trying to get HID Report Descriptor from USB devices. Can you give it a try?
https://github.com/DJm00n/RawInputDemo/tree/hid_report_descriptor_dump
It successfully dumps descriptor from my keyboard, dualshock4, dualsense, stadia controller etc into debug output in MSVS. Now without memleaks and crashes :)
Cannot dump descriptor from my mouse because it supports only Boot Interface Subclass (see 4.2 Subclass in HID spec).

It uses IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION under the hood.

PS: Bluetooth and Bluetooth LE another story that I'll try to investigate.

@JoergAtGithub hi! I have rewritten my code that is trying to get HID Report Descriptor from USB devices. Can you give it a try? https://github.com/DJm00n/RawInputDemo/tree/hid_report_descriptor_dump It successfully dumps descriptor from my keyboard, dualshock4, dualsense, stadia controller etc into debug output in MSVS. Now without memleaks and crashes :) Cannot dump descriptor from my mouse because it supports only Boot Interface Subclass (see 4.2 Subclass in HID spec). It uses `IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION` under the hood. PS: Bluetooth and Bluetooth LE another story that I'll try to investigate.
mcuee commented 2021-06-17 08:51:20 -05:00 (Migrated from github.com)

@DJm00n I should be able to test this over the weekend.

I have tried HIDSharp and win-hid-dump (based on HIDSharp) as mentioned in #249.

@DJm00n I should be able to test this over the weekend. I have tried HIDSharp and win-hid-dump (based on HIDSharp) as mentioned in #249.
JoergAtGithub commented 2021-06-17 12:23:44 -05:00 (Migrated from github.com)

@DJm00n I should be able to test this over the weekend.

I have tried HIDSharp and win-hid-dump (based on HIDSharp) as mentioned in #249.

Why you don't test the code of this PR? This PR uses the the same principle as HIDSharp, but implements much more report constructor elements, incl. the complete reconstruction of the collection structure and correct size of multi-byte items.

> > > @DJm00n I should be able to test this over the weekend. > > I have tried HIDSharp and win-hid-dump (based on HIDSharp) as mentioned in #249. Why you don't test the code of this PR? This PR uses the the same principle as HIDSharp, but implements much more report constructor elements, incl. the complete reconstruction of the collection structure and correct size of multi-byte items.
JoergAtGithub commented 2021-06-17 12:26:14 -05:00 (Migrated from github.com)

@JoergAtGithub hi!
I have rewritten my code that is trying to get HID Report Descriptor from USB devices. Can you give it a try?

I will answer you in the related issue: https://github.com/libusb/hidapi/issues/249

Let's use the comment section here only for the review of the code of this PR.

> > > @JoergAtGithub hi! > I have rewritten my code that is trying to get HID Report Descriptor from USB devices. Can you give it a try? I will answer you in the related issue: https://github.com/libusb/hidapi/issues/249 Let's use the comment section here only for the review of the code of this PR.
mcuee commented 2021-06-17 20:23:22 -05:00 (Migrated from github.com)

@JoergAtGithub I agree that we should use #249 for testing or ideas of different implementation methods, and we only talk about this PR here.

I should be able to test this pull request soon. I would prefer a demo or test program for testing and not debug print though.

@JoergAtGithub I agree that we should use #249 for testing or ideas of different implementation methods, and we only talk about this PR here. I should be able to test this pull request soon. I would prefer a demo or test program for testing and not debug print though.
mcuee commented 2021-06-17 21:14:29 -05:00 (Migrated from github.com)

@JoergAtGithub This pull request seems to work fine.
I build the following branch using VS2019
https://github.com/JoergAtGithub/hidapi/tree/windows_report_descriptor_reconstructor

Here is the run-log.

click to expand
05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 04            Report ID (4)
09 83            Usage (131)
09 81            Usage (129)
09 82            Usage (130)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 60            Input (0x60)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev0.txt ###
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 10            Report ID (16)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev1.txt ###
06 00 FF         Usage Page (65280)
09 02            Usage  (2)
A1 01            Collection (Application)
85 11            Report ID (17)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev2.txt ###
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 01            Report ID (1)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 03            Report Count (3)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev3.txt ###
05 01            Usage Page (1)
09 0C            Usage  (12)
A1 01            Collection (Application)
85 08            Report ID (8)
09 C6            Usage (198)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev4.txt ###
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
85 07            Report ID (7)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
19 00            Usage Minimum (0)
29 75            Usage Maximum (117)
15 00            Logical Minimum (0)
25 75            Logical Maximum (117)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev5.txt ###
05 01            Usage Page (1)
09 0D            Usage  (13)
A1 01            Collection (Application)
09 0D            Usage  (13)
A1 02            Collection (Logical)
85 1C            Report ID (28)
09 81            Usage (129)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
09 CB            Usage (203)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 02            Feature (0x02)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev6.txt ###
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 06            Report ID (6)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 00 FE         Logical Minimum (-512)
26 00 02         Logical Maximum (512)
75 10            Report Size (16)
95 02            Report Count (2)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev7.txt ###
05 0D            Usage Page (13)
09 05            Usage  (5)
A1 01            Collection (Application)
09 22            Usage  (34)
A1 02            Collection (Logical)
85 08            Report ID (8)
09 47            Usage (71)
09 42            Usage (66)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 02            Input (0x02)
09 51            Usage (81)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
75 03            Report Size (3)
95 01            Report Count (1)
81 02            Input (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
15 00            Logical Minimum (0)
26 AF 04         Logical Maximum (1199)
35 00            Physical Minimum (0)
46 E8 03         Physical Maximum (1000)
55 0E            Unit Exponent (14)
65 11            Unit (17)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 31            Usage (49)
15 00            Logical Minimum (0)
26 7B 02         Logical Maximum (635)
35 00            Physical Minimum (0)
46 12 02         Physical Maximum (530)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
C0               End Collection
05 0D            Usage Page (13)
09 56            Usage (86)
15 00            Logical Minimum (0)
27 FF FF 00 00   Logical Maximum (65535)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 54            Usage (84)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
05 09            Usage Page (9)
09 02            Usage (2)
09 03            Usage (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
81 02            Input (0x02)
85 09            Report ID (9)
05 0D            Usage Page (13)
09 55            Usage (85)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 01            Report Count (1)
B1 02            Feature (0x02)
85 0A            Report ID (10)
06 00 FF         Usage Page (65280)
09 C5            Usage (197)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
96 00 01         Report Count (256)
B1 02            Feature (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev8.txt ###
06 DA FF         Usage Page (65498)
09 DA            Usage  (218)
A1 01            Collection (Application)
09 DA            Usage (218)
19 01            Usage Minimum (1)
29 0E            Usage Maximum (14)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 02            Report Count (2)
81 02            Input (0x02)
05 DA            Usage Page (218)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
91 02            Output (0x02)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev9.txt ###
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 01            Report Count (1)
91 02            Output (0x02)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev10.txt ###
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 01            Report ID (1)
09 E9            Usage (233)
09 EA            Usage (234)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 06            Input (0x06)
85 02            Report ID (2)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
85 05            Report ID (5)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 07            Report ID (7)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 04            Report ID (4)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 24            Report Count (36)
91 02            Output (0x02)
85 06            Report ID (6)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 24            Report Count (36)
91 02            Output (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev11.txt ###
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 02            Report ID (2)
09 E9            Usage (233)
09 EA            Usage (234)
0A 21 02         Usage (545)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev12.txt ###
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 03            Report Count (3)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev13.txt ###
05 0B            Usage Page (11)
09 05            Usage  (5)
A1 01            Collection (Application)
85 08            Report ID (8)
09 2F            Usage (47)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
09 20            Usage (32)
09 21            Usage (33)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 22            Input (0x22)
85 09            Report ID (9)
05 08            Usage Page (8)
09 09            Usage (9)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 17            Report ID (23)
09 17            Usage (23)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 18            Report ID (24)
09 18            Usage (24)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 1E            Report ID (30)
09 1E            Usage (30)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 20            Report ID (32)
09 20            Usage (32)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 2A            Report ID (42)
09 2A            Usage (42)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev14.txt ###
05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 03            Report ID (3)
09 81            Usage (129)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev15.txt ###
06 A0 FF         Usage Page (65440)
09 03            Usage  (3)
A1 01            Collection (Application)
85 14            Report ID (20)
09 B1            Usage (177)
09 B2            Usage (178)
09 B5            Usage (181)
09 B7            Usage (183)
09 B3            Usage (179)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
81 06            Input (0x06)
85 1F            Report ID (31)
09 9C            Usage (156)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
85 03            Report ID (3)
09 30            Usage (48)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 15            Report ID (21)
09 8C            Usage (140)
15 00            Logical Minimum (0)
27 FF FF 00 00   Logical Maximum (65535)
75 10            Report Size (16)
95 01            Report Count (1)
81 22            Input (0x22)
85 19            Report ID (25)
09 8D            Usage (141)
09 8F            Usage (143)
09 9E            Usage (158)
09 DC            Usage (220)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 04            Report Count (4)
91 22            Output (0x22)
09 D2            Usage (210)
09 D9            Usage (217)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
91 06            Output (0x06)
85 1A            Report ID (26)
09 B5            Usage (181)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 03            Report ID (3)
09 30            Usage (48)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
91 02            Output (0x02)
85 1B            Report ID (27)
09 CF            Usage (207)
09 B5            Usage (181)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
B1 22            Feature (0x22)
09 DE            Usage (222)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 23            Feature (0x23)
09 D8            Usage (216)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 22            Feature (0x22)
75 04            Report Size (4)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
09 09            Usage (9)
09 17            Usage (23)
09 18            Usage (24)
09 1E            Usage (30)
09 20            Usage (32)
09 2A            Usage (42)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 06            Report Count (6)
B1 22            Feature (0x22)
75 03            Report Size (3)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 02            Report Size (2)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 02            Report Size (2)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev16.txt ###
06 01 FF         Usage Page (65281)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
09 01            Usage (1)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 1B            Report Count (27)
81 02            Input (0x02)
85 04            Report ID (4)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 1B            Report Count (27)
81 02            Input (0x02)
85 06            Report ID (6)
09 04            Usage (4)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 07            Report Count (7)
81 02            Input (0x02)
85 05            Report ID (5)
09 03            Usage (3)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 07            Report Count (7)
B1 02            Feature (0x02)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev17.txt ###
06 02 FF         Usage Page (65282)
09 01            Usage  (1)
A1 01            Collection (Application)
85 07            Report ID (7)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 86            Report Count (134)
B1 02            Feature (0x02)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev18.txt ###
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
19 00            Usage Minimum (0)
29 A4            Usage Maximum (164)
15 00            Logical Minimum (0)
26 A4 00         Logical Maximum (164)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
91 02            Output (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev19.txt ###
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
19 00            Usage Minimum (0)
29 FF            Usage Maximum (255)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
91 02            Output (0x02)
Report Size (-8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 2F            Report Size (47)
95 01            Report Count (1)
81 03            Input (0x03) Padding
Report Size (-41)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 01            Report Size (1)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 05            Report Size (5)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev20.txt ###
05 0D            Usage Page (13)
09 0E            Usage  (14)
A1 01            Collection (Application)
09 22            Usage  (34)
A1 02            Collection (Logical)
85 0B            Report ID (11)
09 52            Usage (82)
15 00            Logical Minimum (0)
25 0A            Logical Maximum (10)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 01            Report Count (1)
B1 02            Feature (0x02)
C0               End Collection
09 22            Usage  (34)
A1 00            Collection (Physical)
85 0C            Report ID (12)
09 57            Usage (87)
09 58            Usage (88)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
B1 02            Feature (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev21.txt ###
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 02            Report ID (2)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 10            Usage Maximum (16)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 10            Report Count (16)
81 02            Input (0x02)
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 01 F8         Logical Minimum (-2047)
26 FF 07         Logical Maximum (2047)
75 0C            Report Size (12)
95 02            Report Count (2)
81 06            Input (0x06)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Rehidapi test/example tool. Compiled with hidapi version 0.10.1, runtime version 0.10.1.
Compile-time version matches runtime version of hidapi.

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&1ebb799e&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x80 (0x1)

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&1ebb799e&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xff00)

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&1ebb799e&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0xff00)

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x2 (0x1)

Device Found
  type: 8087 0a1e
  path: \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: (null)
  Product:      (null)
  Release:      200
  Interface:    -1
  Usage (page): 0xc (0x1)

Device Found
  type: 044e 1212
  path: \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number: 
  Manufacturer: 
  Product:      
  Release:      0
  Interface:    -1
  Usage (page): 0x6 (0x1)

Device Found
  type: 8087 0a1e
  path: \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: (null)
  Product:      (null)
  Release:      200
  Interface:    -1
  Usage (page): 0xd (0x1)

Device Found
  type: 044e 1212
  path: \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: 
  Product:      
  Release:      0
  Interface:    -1
  Usage (page): 0x2 (0x1)

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x5 (0xd)

Device Found
  type: 413c b06e
  path: \\?\hid#vid_413c&pid_b06e#c&37ff1248&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: (null)
  Product:      
  Release:      101
  Interface:    -1
  Usage (page): 0xda (0xffda)

Device Found
  type: 04d8 0033
  path: \\?\hid#vid_04d8&pid_0033#e&bd5b18b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: pk2new
  Manufacturer: Microchip Technology Inc.
  Product:      PICkit 2 Microcontroller Programmer
  Release:      2
  Interface:    -1
  Usage (page): 0x1 (0xff00)

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col01#f&39e6f119&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x1 (0xc)

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: (null)
  Product:      (null)
  Release:      0
  Interface:    -1
  Usage (page): 0x1 (0xc)

Device Found
  type: 046d c077
  path: \\?\hid#vid_046d&pid_c077#e&113cd935&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Optical Mouse
  Release:      7200
  Interface:    -1
  Usage (page): 0x2 (0x1)

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col02#f&39e6f119&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x5 (0xb)

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: (null)
  Product:      (null)
  Release:      0
  Interface:    -1
  Usage (page): 0x80 (0x1)

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col03#f&39e6f119&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x3 (0xffa0)

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x1 (0xff01)

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x1 (0xff02)

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_00#7&51bc424&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    0
  Usage (page): 0x6 (0x1)

Device Found
  type: 413c 2107
  path: \\?\hid#vid_413c&pid_2107#e&11005b8d&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number: (null)
  Manufacturer: DELL
  Product:      Dell USB Entry Keyboard
  Release:      178
  Interface:    -1
  Usage (page): 0x6 (0x1)

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0xe (0xd)

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&1ebb799e&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0x1)

Device Found
  type: 413c b06f
  path: \\?\hid#vid_413c&pid_b06f#d&3624b04c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: (null)
  Product:      
  Release:      101
  Interface:    -1
  Usage (page): 0xda (0xffda)

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&1ebb799e&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xc)

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number: (null)
  Manufacturer: (null)
  Product:      (null)
  Release:      0
  Interface:    -1
  Usage (page): 0x6 (0x1)

unable to open device
port Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev22.txt ###
06 DA FF         Usage Page (65498)
09 DA            Usage  (218)
A1 01            Collection (Application)
09 DA            Usage (218)
19 01            Usage Minimum (1)
29 0E            Usage Maximum (14)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 02            Report Count (2)
81 02            Input (0x02)
05 DA            Usage Page (218)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
91 02            Output (0x02)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev23.txt ###
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
19 01            Usage Minimum (1)
2A 8C 02         Usage Maximum (652)
15 01            Logical Minimum (1)
26 8C 02         Logical Maximum (652)
75 10            Report Size (16)
95 02            Report Count (2)
81 00            Input (0x00)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev24.txt ###
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
85 01            Report ID (1)
05 07            Usage Page (7)
09 69            Usage (105)
09 6A            Usage (106)
09 6B            Usage (107)
09 6C            Usage (108)
09 E3            Usage (227)
09 4C            Usage (76)
09 E2            Usage (226)
09 E0            Usage (224)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev25.txt ###


@JoergAtGithub This pull request seems to work fine. I build the following branch using VS2019 https://github.com/JoergAtGithub/hidapi/tree/windows_report_descriptor_reconstructor Here is the run-log. <details> <summary> click to expand </summary> ``` 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 04 Report ID (4) 09 83 Usage (131) 09 81 Usage (129) 09 82 Usage (130) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 60 Input (0x60) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev0.txt ### 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 10 Report ID (16) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev1.txt ### 06 00 FF Usage Page (65280) 09 02 Usage (2) A1 01 Collection (Application) 85 11 Report ID (17) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev2.txt ### 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 01 Report ID (1) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 03 Report Count (3) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev3.txt ### 05 01 Usage Page (1) 09 0C Usage (12) A1 01 Collection (Application) 85 08 Report ID (8) 09 C6 Usage (198) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev4.txt ### 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 85 07 Report ID (7) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 75 Usage Maximum (117) 15 00 Logical Minimum (0) 25 75 Logical Maximum (117) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev5.txt ### 05 01 Usage Page (1) 09 0D Usage (13) A1 01 Collection (Application) 09 0D Usage (13) A1 02 Collection (Logical) 85 1C Report ID (28) 09 81 Usage (129) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 09 CB Usage (203) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 02 Feature (0x02) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev6.txt ### 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 06 Report ID (6) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 00 FE Logical Minimum (-512) 26 00 02 Logical Maximum (512) 75 10 Report Size (16) 95 02 Report Count (2) 81 06 Input (0x06) C0 End Collection C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev7.txt ### 05 0D Usage Page (13) 09 05 Usage (5) A1 01 Collection (Application) 09 22 Usage (34) A1 02 Collection (Logical) 85 08 Report ID (8) 09 47 Usage (71) 09 42 Usage (66) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 02 Input (0x02) 09 51 Usage (81) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 75 03 Report Size (3) 95 01 Report Count (1) 81 02 Input (0x02) 75 03 Report Size (3) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 15 00 Logical Minimum (0) 26 AF 04 Logical Maximum (1199) 35 00 Physical Minimum (0) 46 E8 03 Physical Maximum (1000) 55 0E Unit Exponent (14) 65 11 Unit (17) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 31 Usage (49) 15 00 Logical Minimum (0) 26 7B 02 Logical Maximum (635) 35 00 Physical Minimum (0) 46 12 02 Physical Maximum (530) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) C0 End Collection 05 0D Usage Page (13) 09 56 Usage (86) 15 00 Logical Minimum (0) 27 FF FF 00 00 Logical Maximum (65535) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 54 Usage (84) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) 05 09 Usage Page (9) 09 02 Usage (2) 09 03 Usage (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) 81 02 Input (0x02) 85 09 Report ID (9) 05 0D Usage Page (13) 09 55 Usage (85) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 01 Report Count (1) B1 02 Feature (0x02) 85 0A Report ID (10) 06 00 FF Usage Page (65280) 09 C5 Usage (197) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 96 00 01 Report Count (256) B1 02 Feature (0x02) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev8.txt ### 06 DA FF Usage Page (65498) 09 DA Usage (218) A1 01 Collection (Application) 09 DA Usage (218) 19 01 Usage Minimum (1) 29 0E Usage Maximum (14) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 02 Report Count (2) 81 02 Input (0x02) 05 DA Usage Page (218) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 91 02 Output (0x02) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev9.txt ### 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) 91 02 Output (0x02) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev10.txt ### 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 01 Report ID (1) 09 E9 Usage (233) 09 EA Usage (234) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 06 Input (0x06) 85 02 Report ID (2) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 85 05 Report ID (5) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 07 Report ID (7) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 04 Report ID (4) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 24 Report Count (36) 91 02 Output (0x02) 85 06 Report ID (6) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 24 Report Count (36) 91 02 Output (0x02) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev11.txt ### 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 02 Report ID (2) 09 E9 Usage (233) 09 EA Usage (234) 0A 21 02 Usage (545) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev12.txt ### 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 03 Report Count (3) 81 06 Input (0x06) C0 End Collection C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev13.txt ### 05 0B Usage Page (11) 09 05 Usage (5) A1 01 Collection (Application) 85 08 Report ID (8) 09 2F Usage (47) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 09 20 Usage (32) 09 21 Usage (33) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 22 Input (0x22) 85 09 Report ID (9) 05 08 Usage Page (8) 09 09 Usage (9) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 17 Report ID (23) 09 17 Usage (23) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 18 Report ID (24) 09 18 Usage (24) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 1E Report ID (30) 09 1E Usage (30) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 20 Report ID (32) 09 20 Usage (32) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 2A Report ID (42) 09 2A Usage (42) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev14.txt ### 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 03 Report ID (3) 09 81 Usage (129) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev15.txt ### 06 A0 FF Usage Page (65440) 09 03 Usage (3) A1 01 Collection (Application) 85 14 Report ID (20) 09 B1 Usage (177) 09 B2 Usage (178) 09 B5 Usage (181) 09 B7 Usage (183) 09 B3 Usage (179) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 81 06 Input (0x06) 85 1F Report ID (31) 09 9C Usage (156) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 85 03 Report ID (3) 09 30 Usage (48) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 15 Report ID (21) 09 8C Usage (140) 15 00 Logical Minimum (0) 27 FF FF 00 00 Logical Maximum (65535) 75 10 Report Size (16) 95 01 Report Count (1) 81 22 Input (0x22) 85 19 Report ID (25) 09 8D Usage (141) 09 8F Usage (143) 09 9E Usage (158) 09 DC Usage (220) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 04 Report Count (4) 91 22 Output (0x22) 09 D2 Usage (210) 09 D9 Usage (217) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 91 06 Output (0x06) 85 1A Report ID (26) 09 B5 Usage (181) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 03 Report ID (3) 09 30 Usage (48) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 91 02 Output (0x02) 85 1B Report ID (27) 09 CF Usage (207) 09 B5 Usage (181) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) B1 22 Feature (0x22) 09 DE Usage (222) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 23 Feature (0x23) 09 D8 Usage (216) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 22 Feature (0x22) 75 04 Report Size (4) 95 01 Report Count (1) B1 03 Feature (0x03) Padding 09 09 Usage (9) 09 17 Usage (23) 09 18 Usage (24) 09 1E Usage (30) 09 20 Usage (32) 09 2A Usage (42) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 06 Report Count (6) B1 22 Feature (0x22) 75 03 Report Size (3) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 02 Report Size (2) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 02 Report Size (2) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev16.txt ### 06 01 FF Usage Page (65281) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 09 01 Usage (1) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 1B Report Count (27) 81 02 Input (0x02) 85 04 Report ID (4) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 1B Report Count (27) 81 02 Input (0x02) 85 06 Report ID (6) 09 04 Usage (4) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 07 Report Count (7) 81 02 Input (0x02) 85 05 Report ID (5) 09 03 Usage (3) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 07 Report Count (7) B1 02 Feature (0x02) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev17.txt ### 06 02 FF Usage Page (65282) 09 01 Usage (1) A1 01 Collection (Application) 85 07 Report ID (7) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 86 Report Count (134) B1 02 Feature (0x02) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev18.txt ### 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 A4 Usage Maximum (164) 15 00 Logical Minimum (0) 26 A4 00 Logical Maximum (164) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 91 02 Output (0x02) 75 03 Report Size (3) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev19.txt ### 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 19 00 Usage Minimum (0) 29 FF Usage Maximum (255) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 91 02 Output (0x02) Report Size (-8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 2F Report Size (47) 95 01 Report Count (1) 81 03 Input (0x03) Padding Report Size (-41) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 01 Report Size (1) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 05 Report Size (5) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev20.txt ### 05 0D Usage Page (13) 09 0E Usage (14) A1 01 Collection (Application) 09 22 Usage (34) A1 02 Collection (Logical) 85 0B Report ID (11) 09 52 Usage (82) 15 00 Logical Minimum (0) 25 0A Logical Maximum (10) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 01 Report Count (1) B1 02 Feature (0x02) C0 End Collection 09 22 Usage (34) A1 00 Collection (Physical) 85 0C Report ID (12) 09 57 Usage (87) 09 58 Usage (88) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) B1 02 Feature (0x02) 75 06 Report Size (6) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev21.txt ### 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 02 Report ID (2) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 10 Usage Maximum (16) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 10 Report Count (16) 81 02 Input (0x02) 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 01 F8 Logical Minimum (-2047) 26 FF 07 Logical Maximum (2047) 75 0C Report Size (12) 95 02 Report Count (2) 81 06 Input (0x06) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Rehidapi test/example tool. Compiled with hidapi version 0.10.1, runtime version 0.10.1. Compile-time version matches runtime version of hidapi. Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&1ebb799e&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x80 (0x1) Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&1ebb799e&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xff00) Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&1ebb799e&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0xff00) Device Found type: 0488 121f path: \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x2 (0x1) Device Found type: 8087 0a1e path: \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: (null) Product: (null) Release: 200 Interface: -1 Usage (page): 0xc (0x1) Device Found type: 044e 1212 path: \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x6 (0x1) Device Found type: 8087 0a1e path: \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: (null) Product: (null) Release: 200 Interface: -1 Usage (page): 0xd (0x1) Device Found type: 044e 1212 path: \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x2 (0x1) Device Found type: 0488 121f path: \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x5 (0xd) Device Found type: 413c b06e path: \\?\hid#vid_413c&pid_b06e#c&37ff1248&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: (null) Product: Release: 101 Interface: -1 Usage (page): 0xda (0xffda) Device Found type: 04d8 0033 path: \\?\hid#vid_04d8&pid_0033#e&bd5b18b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: pk2new Manufacturer: Microchip Technology Inc. Product: PICkit 2 Microcontroller Programmer Release: 2 Interface: -1 Usage (page): 0x1 (0xff00) Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col01#f&39e6f119&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x1 (0xc) Device Found type: 045e 0000 path: \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: (null) Product: (null) Release: 0 Interface: -1 Usage (page): 0x1 (0xc) Device Found type: 046d c077 path: \\?\hid#vid_046d&pid_c077#e&113cd935&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Logitech Product: USB Optical Mouse Release: 7200 Interface: -1 Usage (page): 0x2 (0x1) Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col02#f&39e6f119&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x5 (0xb) Device Found type: 045e 0000 path: \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: (null) Product: (null) Release: 0 Interface: -1 Usage (page): 0x80 (0x1) Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col03#f&39e6f119&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x3 (0xffa0) Device Found type: 0488 121f path: \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x1 (0xff01) Device Found type: 0488 121f path: \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x1 (0xff02) Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_00#7&51bc424&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 0 Usage (page): 0x6 (0x1) Device Found type: 413c 2107 path: \\?\hid#vid_413c&pid_2107#e&11005b8d&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: (null) Manufacturer: DELL Product: Dell USB Entry Keyboard Release: 178 Interface: -1 Usage (page): 0x6 (0x1) Device Found type: 0488 121f path: \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0xe (0xd) Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&1ebb799e&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0x1) Device Found type: 413c b06f path: \\?\hid#vid_413c&pid_b06f#d&3624b04c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: (null) Product: Release: 101 Interface: -1 Usage (page): 0xda (0xffda) Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&1ebb799e&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xc) Device Found type: 045e 0000 path: \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: (null) Manufacturer: (null) Product: (null) Release: 0 Interface: -1 Usage (page): 0x6 (0x1) unable to open device port Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev22.txt ### 06 DA FF Usage Page (65498) 09 DA Usage (218) A1 01 Collection (Application) 09 DA Usage (218) 19 01 Usage Minimum (1) 29 0E Usage Maximum (14) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 02 Report Count (2) 81 02 Input (0x02) 05 DA Usage Page (218) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 91 02 Output (0x02) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev23.txt ### 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 19 01 Usage Minimum (1) 2A 8C 02 Usage Maximum (652) 15 01 Logical Minimum (1) 26 8C 02 Logical Maximum (652) 75 10 Report Size (16) 95 02 Report Count (2) 81 00 Input (0x00) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev24.txt ### 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 85 01 Report ID (1) 05 07 Usage Page (7) 09 69 Usage (105) 09 6A Usage (106) 09 6B Usage (107) 09 6C Usage (108) 09 E3 Usage (227) 09 4C Usage (76) 09 E2 Usage (226) 09 E0 Usage (224) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev25.txt ### ``` </details>
mcuee commented 2021-06-17 21:15:30 -05:00 (Migrated from github.com)

It generates many txt files as seen in the run-log file mentioned above. There is a difficulty to correlate the txt file with the device.


C:\work\libusb\hidapi_test\windows\Release [windows_report_descriptor_reconstructor ≡ +0 ~3 -0 !]> ls *.txt

    Directory: C:\work\libusb\hidapi_test\windows\Release

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           6/18/2021 10:08 AM            100 hid_report_descriptor_0_0_dev0.txt
-a---           6/18/2021 10:08 AM            136 hid_report_descriptor_0_0_dev1.txt
-a---           6/18/2021 10:08 AM            152 hid_report_descriptor_0_0_dev10.txt
-a---           6/18/2021 10:08 AM            396 hid_report_descriptor_0_0_dev11.txt
-a---           6/18/2021 10:08 AM            128 hid_report_descriptor_0_0_dev12.txt
-a---           6/18/2021 10:08 AM            208 hid_report_descriptor_0_0_dev13.txt
-a---           6/18/2021 10:08 AM            652 hid_report_descriptor_0_0_dev14.txt
-a---           6/18/2021 10:08 AM            108 hid_report_descriptor_0_0_dev15.txt
-a---           6/18/2021 10:08 AM            940 hid_report_descriptor_0_0_dev16.txt
-a---           6/18/2021 10:08 AM            320 hid_report_descriptor_0_0_dev17.txt
-a---           6/18/2021 10:08 AM            140 hid_report_descriptor_0_0_dev18.txt
-a---           6/18/2021 10:08 AM            264 hid_report_descriptor_0_0_dev19.txt
-a---           6/18/2021 10:08 AM            136 hid_report_descriptor_0_0_dev2.txt
-a---           6/18/2021 10:08 AM            320 hid_report_descriptor_0_0_dev20.txt
-a---           6/18/2021 10:08 AM            284 hid_report_descriptor_0_0_dev21.txt
-a---           6/18/2021 10:08 AM            300 hid_report_descriptor_0_0_dev22.txt
-a---           6/18/2021 10:08 AM            160 hid_report_descriptor_0_0_dev23.txt
-a---           6/18/2021 10:08 AM            100 hid_report_descriptor_0_0_dev24.txt
-a---           6/18/2021 10:08 AM            148 hid_report_descriptor_0_0_dev25.txt
-a---           6/18/2021 10:08 AM            276 hid_report_descriptor_0_0_dev3.txt
-a---           6/18/2021 10:08 AM            108 hid_report_descriptor_0_0_dev4.txt
-a---           6/18/2021 10:08 AM            180 hid_report_descriptor_0_0_dev5.txt
-a---           6/18/2021 10:08 AM            200 hid_report_descriptor_0_0_dev6.txt
-a---           6/18/2021 10:08 AM            216 hid_report_descriptor_0_0_dev7.txt
-a---           6/18/2021 10:08 AM            816 hid_report_descriptor_0_0_dev8.txt
-a---           6/18/2021 10:08 AM            160 hid_report_descriptor_0_0_dev9.txt

It generates many txt files as seen in the run-log file mentioned above. There is a difficulty to correlate the txt file with the device. ``` C:\work\libusb\hidapi_test\windows\Release [windows_report_descriptor_reconstructor ≡ +0 ~3 -0 !]> ls *.txt Directory: C:\work\libusb\hidapi_test\windows\Release Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 6/18/2021 10:08 AM 100 hid_report_descriptor_0_0_dev0.txt -a--- 6/18/2021 10:08 AM 136 hid_report_descriptor_0_0_dev1.txt -a--- 6/18/2021 10:08 AM 152 hid_report_descriptor_0_0_dev10.txt -a--- 6/18/2021 10:08 AM 396 hid_report_descriptor_0_0_dev11.txt -a--- 6/18/2021 10:08 AM 128 hid_report_descriptor_0_0_dev12.txt -a--- 6/18/2021 10:08 AM 208 hid_report_descriptor_0_0_dev13.txt -a--- 6/18/2021 10:08 AM 652 hid_report_descriptor_0_0_dev14.txt -a--- 6/18/2021 10:08 AM 108 hid_report_descriptor_0_0_dev15.txt -a--- 6/18/2021 10:08 AM 940 hid_report_descriptor_0_0_dev16.txt -a--- 6/18/2021 10:08 AM 320 hid_report_descriptor_0_0_dev17.txt -a--- 6/18/2021 10:08 AM 140 hid_report_descriptor_0_0_dev18.txt -a--- 6/18/2021 10:08 AM 264 hid_report_descriptor_0_0_dev19.txt -a--- 6/18/2021 10:08 AM 136 hid_report_descriptor_0_0_dev2.txt -a--- 6/18/2021 10:08 AM 320 hid_report_descriptor_0_0_dev20.txt -a--- 6/18/2021 10:08 AM 284 hid_report_descriptor_0_0_dev21.txt -a--- 6/18/2021 10:08 AM 300 hid_report_descriptor_0_0_dev22.txt -a--- 6/18/2021 10:08 AM 160 hid_report_descriptor_0_0_dev23.txt -a--- 6/18/2021 10:08 AM 100 hid_report_descriptor_0_0_dev24.txt -a--- 6/18/2021 10:08 AM 148 hid_report_descriptor_0_0_dev25.txt -a--- 6/18/2021 10:08 AM 276 hid_report_descriptor_0_0_dev3.txt -a--- 6/18/2021 10:08 AM 108 hid_report_descriptor_0_0_dev4.txt -a--- 6/18/2021 10:08 AM 180 hid_report_descriptor_0_0_dev5.txt -a--- 6/18/2021 10:08 AM 200 hid_report_descriptor_0_0_dev6.txt -a--- 6/18/2021 10:08 AM 216 hid_report_descriptor_0_0_dev7.txt -a--- 6/18/2021 10:08 AM 816 hid_report_descriptor_0_0_dev8.txt -a--- 6/18/2021 10:08 AM 160 hid_report_descriptor_0_0_dev9.txt ```
mcuee commented 2021-06-17 21:29:45 -05:00 (Migrated from github.com)

I have the Microchip PICkit 2 with simple HID report. It is not that correct.

Original HID report descriptor

rom struct{byte report[29];}hid_rpt01={
    0x06, 0x00, 0xFF,       // Usage Page (Vendor Defined)
    0x09, 0x01,             // Usage (Vendor Usage)
    0xA1, 0x01,             // Collection (Application)
    0x19, 0x01,             //      Usage Minimum (Vendor Usage = 1)
//    0x29, 0x08,             //      Usage Maximum (Vendor Usage = 8)
    0x29, 0x40,             //      Usage Maximum (Vendor Usage = 64)
    0x15, 0x00,             //      Logical Minimum (Vendor Usage = 0)
    0x26, 0xFF, 0x00,       //      Logical Maximum (Vendor Usage = 255)
    0x75, 0x08,             //      Report Size (Vendor Usage = 8)
//    0x95, 0x08,             //      Report Count (Vendor Usage = 8)
    0x95, 0x40,             //      Report Count (Vendor Usage = 64)
    0x81, 0x02,             //      Input (Data, Var, Abs)
    0x19, 0x01,             //      Usage Minimum (Vendor Usage = 1)
//    0x29, 0x08,             //      Usage Maximum (Vendor Usage = 8)
    0x29, 0x40,             //      Usage Maximum (Vendor Usage = 64)
    0x91, 0x02,             //      Output (Data, Var, Ads)
    0xC0};                  // End Collection

Dumped by this pull request [Edit: fixed]

 06  00  FF  09  01  A1  01  19  01  29  40  15  00  26  FF  00  75  08  95  01  81  02  19  01  29  40  15  00  26  FF  00  75  08  95  01  91  02  C0 

https://eleccelerator.com/usbdescreqparser/ output.

0x06, 0x00, 0xFF,  // Usage Page (Vendor Defined 0xFF00)
0x09, 0x01,        // Usage (0x01)
0xA1, 0x01,        // Collection (Application)
0x19, 0x01,        //   Usage Minimum (0x01)
0x29, 0x40,        //   Usage Maximum (0x40)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x75, 0x08,        //   Report Size (8)
0x95, 0x01,        //   Report Count (1)
0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x19, 0x01,        //   Usage Minimum (0x01)
0x29, 0x40,        //   Usage Maximum (0x40)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x75, 0x08,        //   Report Size (8)
0x95, 0x01,        //   Report Count (1)
0x91, 0x02,        //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              // End Collection

// 38 bytes

As a comparison, this is what I get from HIDSharp which is also not correct.

\\?\hid#vid_04d8&pid_0033#e&bd5b18b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
Microchip Technology Inc. PICkit 2 Microcontroller Programmer pk2new (VID 1240, PID 51, version 0.2)
Max Lengths: Input 65, Output 65, Feature 0
Serial Ports:
Report Descriptor:
  06 00 FF 09 01 A1 01 15 00 25 01 35 00 45 01 65 00 55 00 75 01 96 00 02 81 03 91 03 C1 00 (30 bytes)
  UsagePage 65280
  Usage 1
  Collection 1
    LogicalMinimum 0
    LogicalMaximum 1
    PhysicalMinimum 0
    PhysicalMaximum 1
    Unit 0
    UnitExponent 0
    ReportSize 1
    ReportCount 512
    Input 3
    Output 3
  EndCollection 0
Usage: FF000001 4278190081
Input: ReportID=0, Length=65, Items=1
  512 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages:
Output: ReportID=0, Length=65, Items=1
  512 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages:
Opening device for 20 seconds...
Opened device.
Closed device.

I have the Microchip PICkit 2 with simple HID report. It is not that correct. Original HID report descriptor ``` rom struct{byte report[29];}hid_rpt01={ 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined) 0x09, 0x01, // Usage (Vendor Usage) 0xA1, 0x01, // Collection (Application) 0x19, 0x01, // Usage Minimum (Vendor Usage = 1) // 0x29, 0x08, // Usage Maximum (Vendor Usage = 8) 0x29, 0x40, // Usage Maximum (Vendor Usage = 64) 0x15, 0x00, // Logical Minimum (Vendor Usage = 0) 0x26, 0xFF, 0x00, // Logical Maximum (Vendor Usage = 255) 0x75, 0x08, // Report Size (Vendor Usage = 8) // 0x95, 0x08, // Report Count (Vendor Usage = 8) 0x95, 0x40, // Report Count (Vendor Usage = 64) 0x81, 0x02, // Input (Data, Var, Abs) 0x19, 0x01, // Usage Minimum (Vendor Usage = 1) // 0x29, 0x08, // Usage Maximum (Vendor Usage = 8) 0x29, 0x40, // Usage Maximum (Vendor Usage = 64) 0x91, 0x02, // Output (Data, Var, Ads) 0xC0}; // End Collection ``` Dumped by this pull request [Edit: fixed] ``` 06 00 FF 09 01 A1 01 19 01 29 40 15 00 26 FF 00 75 08 95 01 81 02 19 01 29 40 15 00 26 FF 00 75 08 95 01 91 02 C0 ``` https://eleccelerator.com/usbdescreqparser/ output. ``` 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 0x09, 0x01, // Usage (0x01) 0xA1, 0x01, // Collection (Application) 0x19, 0x01, // Usage Minimum (0x01) 0x29, 0x40, // Usage Maximum (0x40) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x01, // Report Count (1) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x19, 0x01, // Usage Minimum (0x01) 0x29, 0x40, // Usage Maximum (0x40) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x01, // Report Count (1) 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection // 38 bytes ``` As a comparison, this is what I get from HIDSharp which is also not correct. ``` \\?\hid#vid_04d8&pid_0033#e&bd5b18b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Microchip Technology Inc. PICkit 2 Microcontroller Programmer pk2new (VID 1240, PID 51, version 0.2) Max Lengths: Input 65, Output 65, Feature 0 Serial Ports: Report Descriptor: 06 00 FF 09 01 A1 01 15 00 25 01 35 00 45 01 65 00 55 00 75 01 96 00 02 81 03 91 03 C1 00 (30 bytes) UsagePage 65280 Usage 1 Collection 1 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 512 Input 3 Output 3 EndCollection 0 Usage: FF000001 4278190081 Input: ReportID=0, Length=65, Items=1 512 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=0, Length=65, Items=1 512 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device. ```
JoergAtGithub commented 2021-06-17 23:59:17 -05:00 (Migrated from github.com)

Thanks for testing!
Are you sure, that the data in the last post are from the same device? It looks completly different.

Thanks for testing! Are you sure, that the data in the last post are from the same device? It looks completly different.
mcuee commented 2021-06-18 00:19:19 -05:00 (Migrated from github.com)

Thanks for testing!
Are you sure, that the data in the last post are from the same device? It looks completly different.

Oops, you are right. That is the difficulty I am facing. I will change that one. After fixing that, it is not that correct to me.

I search the run-log file and this is the closest and it does not match the FW source codes.

> Thanks for testing! > Are you sure, that the data in the last post are from the same device? It looks completly different. Oops, you are right. That is the difficulty I am facing. I will change that one. After fixing that, it is not that correct to me. I search the run-log file and this is the closest and it does not match the FW source codes.
mcuee commented 2021-06-18 00:36:19 -05:00 (Migrated from github.com)

Full USB Descriptor C source code for reference.

click to expand
/*********************************************************************
 *
 *                Microchip USB C18 Firmware Version 1.0
 *
 * This file is generated by Microchip USB Wizard Version 1.0, 2004
 *********************************************************************
 * FileName:        usbdsc.c
 * Dependencies:    See INCLUDES section below
 * Processor:       PIC18
 * Compiler:        C18 3.00
 * Company:         Microchip Technology, Inc.
 *
 * Software License Agreement
 *
 * The software supplied herewith by Microchip Technology Incorporated
 * (the “Company”) for its PICmicro® Microcontroller is intended and
 * supplied to you, the Company’s customer, for use solely and
 * exclusively on Microchip PICmicro Microcontroller products. The
 * software is owned by the Company and/or its supplier, and is
 * protected under applicable copyright laws. All rights are reserved.
 * Any use in violation of the foregoing restrictions may subject the
 * user to criminal sanctions under applicable laws, as well as to
 * civil liability for the breach of the terms and conditions of this
 * license.
 *
 * THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES,
 * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
 * TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
 * IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 *
 ********************************************************************/

/*********************************************************************
 * Descriptor specific type definitions are defined in:
 * system\usb\usbdefs\usbdefs_std_dsc.h
 *
 * Configuration information is defined in:
 * autofiles\usbcfg.h
 ********************************************************************/
 
/** I N C L U D E S *************************************************/
#include "system\typedefs.h"
#include "system\usb\usb.h"

/** C O N S T A N T S ************************************************/
#pragma romdata

/* Device Descriptor */
rom USB_DEV_DSC device_dsc=
{    
    sizeof(USB_DEV_DSC),    // Size of this descriptor in bytes
    DSC_DEV,                // DEVICE descriptor type
    0x0200,                 // USB Spec Release Number in BCD format
    0x00,                   // Class Code
    0x00,                   // Subclass code
    0x00,                   // Protocol code
    EP0_BUFF_SIZE,          // Max packet size for EP0, see usbcfg.h
    0x04D8,                 // Vendor ID = 1240
    0x0033,                 // Product ID = 51
    0x0002,                 // Device release number in BCD format
    0x01,                   // Manufacturer string index
    0x02,                   // Product string index
    SERIAL_UNITID_DSC,                   // Device serial number string index
    0x02                    // Number of possible configurations
};

/* Configuration 1 Descriptor */
CFG01={
    /* Configuration Descriptor */
    sizeof(USB_CFG_DSC),    // Size of this descriptor in bytes
    DSC_CFG,                // CONFIGURATION descriptor type
    sizeof(cfg01),          // Total length of data for this cfg
    1,                      // Number of interfaces in this cfg
    1,                      // Index value of this configuration
    2,                      // Configuration string index
    _DEFAULT,               // Attributes, see usbdefs_std_dsc.h
    50,                     // Max power consumption (2X mA)

    /* Interface Descriptor */
    sizeof(USB_INTF_DSC),   // Size of this descriptor in bytes
    DSC_INTF,               // INTERFACE descriptor type
    0,                      // Interface Number
    0,                      // Alternate Setting Number
    2,                      // Number of endpoints in this intf
    HID_INTF,               // Class code
    0,                      // Subclass code
    0,                      // Protocol code
    0,                      // Interface string index

    /* HID Class-Specific Descriptor */
    sizeof(USB_HID_DSC),    // Size of this descriptor in bytes
    DSC_HID,                // HID descriptor type
    0x0001,                 // HID Spec Release Number in BCD format
    0x00,                   // Country Code (0x00 for Not supported)
    1,                      // Number of class descriptors, see usbcfg.h
    DSC_RPT,                // Report descriptor type
    sizeof(hid_rpt01),      // Size of the report descriptor

    /* Endpoint Descriptor 1 in */
    sizeof(USB_EP_DSC),
    DSC_EP,
    _EP01_IN,
    _INT,
    HID_INT_IN_EP_SIZE,
    0x01,

    /* Endpoint Descriptor 1 out */
    sizeof(USB_EP_DSC),
    DSC_EP,
    _EP01_OUT,
    _INT,
    HID_INT_OUT_EP_SIZE,
    0x01
};

/* Configuration 2 Descriptor */
CFG02={
    /* Configuration Descriptor */
    sizeof(USB_CFG_DSC),    // Size of this descriptor in bytes
    DSC_CFG,                // CONFIGURATION descriptor type
    sizeof(cfg02),          // Total length of data for this cfg
    1,                      // Number of interfaces in this cfg
    2,                      // Index value of this configuration
    4,                      // Configuration string index
    _DEFAULT,               // Attributes, see usbdefs_std_dsc.h
    50,                     // Max power consumption (2X mA)

    /* Interface Descriptor */
    sizeof(USB_INTF_DSC),   // Size of this descriptor in bytes
    DSC_INTF,               // INTERFACE descriptor type
    0,                      // Interface Number
    0,                      // Alternate Setting Number
    2,                      // Number of endpoints in this intf
    0xFF,                   // Class code (vendor defined)
    0,                      // Subclass code
    0,                      // Protocol code
    0,                      // Interface string index

    /* Endpoint Descriptor 1 in */
    sizeof(USB_EP_DSC),
    DSC_EP,
    _EP01_IN,
    _INT,
    HID_INT_IN_EP_SIZE,
    0x01,

    /* Endpoint Descriptor 1 out */
    sizeof(USB_EP_DSC),
    DSC_EP,
    _EP01_OUT,
    _INT,
    HID_INT_OUT_EP_SIZE,
    0x01
};

rom struct{byte bLength;byte bDscType;word string[1];}sd000={
sizeof(sd000),DSC_STR,0x0409};

rom struct{byte bLength;byte bDscType;word string[25];}sd001={
sizeof(sd001),DSC_STR,
'M','i','c','r','o','c','h','i','p',' ','T','e','c','h','n','o','l','o','g','y',' ','I','n','c','.'};

rom struct{byte bLength;byte bDscType;word string[35];}sd002={
sizeof(sd002),DSC_STR,
'P','I','C','k','i','t',' ','2',' ','M','i','c','r','o','c','o','n','t','r','o','l','l','e','r',' ','P','r','o','g','r','a','m','m','e','r'};

//rom struct{byte bLength;byte bDscType;word string[10];}sd003={
//sizeof(sd003),DSC_STR,
//'O','l','H','o', 's', 's', 'X', 0, 0, 0};

//rom struct{byte bLength;byte bDscType;word string[24];}sd004={
//sizeof(sd004),DSC_STR,
//'P','I','C','k','i','t',' ','2',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',' ','2'};

rom struct{byte report[29];}hid_rpt01={
    0x06, 0x00, 0xFF,       // Usage Page (Vendor Defined)
    0x09, 0x01,             // Usage (Vendor Usage)
    0xA1, 0x01,             // Collection (Application)
    0x19, 0x01,             //      Usage Minimum (Vendor Usage = 1)
//    0x29, 0x08,             //      Usage Maximum (Vendor Usage = 8)
    0x29, 0x40,             //      Usage Maximum (Vendor Usage = 64)
    0x15, 0x00,             //      Logical Minimum (Vendor Usage = 0)
    0x26, 0xFF, 0x00,       //      Logical Maximum (Vendor Usage = 255)
    0x75, 0x08,             //      Report Size (Vendor Usage = 8)
//    0x95, 0x08,             //      Report Count (Vendor Usage = 8)
    0x95, 0x40,             //      Report Count (Vendor Usage = 64)
    0x81, 0x02,             //      Input (Data, Var, Abs)
    0x19, 0x01,             //      Usage Minimum (Vendor Usage = 1)
//    0x29, 0x08,             //      Usage Maximum (Vendor Usage = 8)
    0x29, 0x40,             //      Usage Maximum (Vendor Usage = 64)
    0x91, 0x02,             //      Output (Data, Var, Ads)
    0xC0};                  // End Collection

rom const unsigned char *rom USB_CD_Ptr[]={&cfg01,&cfg02};
//rom const unsigned char *rom USB_SD_Ptr[]={&sd000,&sd001,&sd002,&sd003,&sd004};
rom const unsigned char *rom USB_SD_Ptr[]={&sd000,&sd001,&sd002};

rom pFunc ClassReqHandler[1]=
{
    &USBCheckHIDRequest
};

#pragma code

/** EOF usbdsc.c ****************************************************/

Full USB Descriptor C source code for reference. <details> <summary> click to expand </summary> ``` /********************************************************************* * * Microchip USB C18 Firmware Version 1.0 * * This file is generated by Microchip USB Wizard Version 1.0, 2004 ********************************************************************* * FileName: usbdsc.c * Dependencies: See INCLUDES section below * Processor: PIC18 * Compiler: C18 3.00 * Company: Microchip Technology, Inc. * * Software License Agreement * * The software supplied herewith by Microchip Technology Incorporated * (the “Company”) for its PICmicro® Microcontroller is intended and * supplied to you, the Company’s customer, for use solely and * exclusively on Microchip PICmicro Microcontroller products. The * software is owned by the Company and/or its supplier, and is * protected under applicable copyright laws. All rights are reserved. * Any use in violation of the foregoing restrictions may subject the * user to criminal sanctions under applicable laws, as well as to * civil liability for the breach of the terms and conditions of this * license. * * THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES, * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED * TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT, * IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. * ********************************************************************/ /********************************************************************* * Descriptor specific type definitions are defined in: * system\usb\usbdefs\usbdefs_std_dsc.h * * Configuration information is defined in: * autofiles\usbcfg.h ********************************************************************/ /** I N C L U D E S *************************************************/ #include "system\typedefs.h" #include "system\usb\usb.h" /** C O N S T A N T S ************************************************/ #pragma romdata /* Device Descriptor */ rom USB_DEV_DSC device_dsc= { sizeof(USB_DEV_DSC), // Size of this descriptor in bytes DSC_DEV, // DEVICE descriptor type 0x0200, // USB Spec Release Number in BCD format 0x00, // Class Code 0x00, // Subclass code 0x00, // Protocol code EP0_BUFF_SIZE, // Max packet size for EP0, see usbcfg.h 0x04D8, // Vendor ID = 1240 0x0033, // Product ID = 51 0x0002, // Device release number in BCD format 0x01, // Manufacturer string index 0x02, // Product string index SERIAL_UNITID_DSC, // Device serial number string index 0x02 // Number of possible configurations }; /* Configuration 1 Descriptor */ CFG01={ /* Configuration Descriptor */ sizeof(USB_CFG_DSC), // Size of this descriptor in bytes DSC_CFG, // CONFIGURATION descriptor type sizeof(cfg01), // Total length of data for this cfg 1, // Number of interfaces in this cfg 1, // Index value of this configuration 2, // Configuration string index _DEFAULT, // Attributes, see usbdefs_std_dsc.h 50, // Max power consumption (2X mA) /* Interface Descriptor */ sizeof(USB_INTF_DSC), // Size of this descriptor in bytes DSC_INTF, // INTERFACE descriptor type 0, // Interface Number 0, // Alternate Setting Number 2, // Number of endpoints in this intf HID_INTF, // Class code 0, // Subclass code 0, // Protocol code 0, // Interface string index /* HID Class-Specific Descriptor */ sizeof(USB_HID_DSC), // Size of this descriptor in bytes DSC_HID, // HID descriptor type 0x0001, // HID Spec Release Number in BCD format 0x00, // Country Code (0x00 for Not supported) 1, // Number of class descriptors, see usbcfg.h DSC_RPT, // Report descriptor type sizeof(hid_rpt01), // Size of the report descriptor /* Endpoint Descriptor 1 in */ sizeof(USB_EP_DSC), DSC_EP, _EP01_IN, _INT, HID_INT_IN_EP_SIZE, 0x01, /* Endpoint Descriptor 1 out */ sizeof(USB_EP_DSC), DSC_EP, _EP01_OUT, _INT, HID_INT_OUT_EP_SIZE, 0x01 }; /* Configuration 2 Descriptor */ CFG02={ /* Configuration Descriptor */ sizeof(USB_CFG_DSC), // Size of this descriptor in bytes DSC_CFG, // CONFIGURATION descriptor type sizeof(cfg02), // Total length of data for this cfg 1, // Number of interfaces in this cfg 2, // Index value of this configuration 4, // Configuration string index _DEFAULT, // Attributes, see usbdefs_std_dsc.h 50, // Max power consumption (2X mA) /* Interface Descriptor */ sizeof(USB_INTF_DSC), // Size of this descriptor in bytes DSC_INTF, // INTERFACE descriptor type 0, // Interface Number 0, // Alternate Setting Number 2, // Number of endpoints in this intf 0xFF, // Class code (vendor defined) 0, // Subclass code 0, // Protocol code 0, // Interface string index /* Endpoint Descriptor 1 in */ sizeof(USB_EP_DSC), DSC_EP, _EP01_IN, _INT, HID_INT_IN_EP_SIZE, 0x01, /* Endpoint Descriptor 1 out */ sizeof(USB_EP_DSC), DSC_EP, _EP01_OUT, _INT, HID_INT_OUT_EP_SIZE, 0x01 }; rom struct{byte bLength;byte bDscType;word string[1];}sd000={ sizeof(sd000),DSC_STR,0x0409}; rom struct{byte bLength;byte bDscType;word string[25];}sd001={ sizeof(sd001),DSC_STR, 'M','i','c','r','o','c','h','i','p',' ','T','e','c','h','n','o','l','o','g','y',' ','I','n','c','.'}; rom struct{byte bLength;byte bDscType;word string[35];}sd002={ sizeof(sd002),DSC_STR, 'P','I','C','k','i','t',' ','2',' ','M','i','c','r','o','c','o','n','t','r','o','l','l','e','r',' ','P','r','o','g','r','a','m','m','e','r'}; //rom struct{byte bLength;byte bDscType;word string[10];}sd003={ //sizeof(sd003),DSC_STR, //'O','l','H','o', 's', 's', 'X', 0, 0, 0}; //rom struct{byte bLength;byte bDscType;word string[24];}sd004={ //sizeof(sd004),DSC_STR, //'P','I','C','k','i','t',' ','2',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',' ','2'}; rom struct{byte report[29];}hid_rpt01={ 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined) 0x09, 0x01, // Usage (Vendor Usage) 0xA1, 0x01, // Collection (Application) 0x19, 0x01, // Usage Minimum (Vendor Usage = 1) // 0x29, 0x08, // Usage Maximum (Vendor Usage = 8) 0x29, 0x40, // Usage Maximum (Vendor Usage = 64) 0x15, 0x00, // Logical Minimum (Vendor Usage = 0) 0x26, 0xFF, 0x00, // Logical Maximum (Vendor Usage = 255) 0x75, 0x08, // Report Size (Vendor Usage = 8) // 0x95, 0x08, // Report Count (Vendor Usage = 8) 0x95, 0x40, // Report Count (Vendor Usage = 64) 0x81, 0x02, // Input (Data, Var, Abs) 0x19, 0x01, // Usage Minimum (Vendor Usage = 1) // 0x29, 0x08, // Usage Maximum (Vendor Usage = 8) 0x29, 0x40, // Usage Maximum (Vendor Usage = 64) 0x91, 0x02, // Output (Data, Var, Ads) 0xC0}; // End Collection rom const unsigned char *rom USB_CD_Ptr[]={&cfg01,&cfg02}; //rom const unsigned char *rom USB_SD_Ptr[]={&sd000,&sd001,&sd002,&sd003,&sd004}; rom const unsigned char *rom USB_SD_Ptr[]={&sd000,&sd001,&sd002}; rom pFunc ClassReqHandler[1]= { &USBCheckHIDRequest }; #pragma code /** EOF usbdsc.c ****************************************************/ ``` </details>
mcuee commented 2021-06-18 02:16:10 -05:00 (Migrated from github.com)

@JoergAtGithub Based on the comments in #249 , the output from this pull request is actually not bad. REPORT_ID (0), REPORT_COUNT (1), and REPORT_SIZE (8) are actually correct.

From @todbot
For vendor usages, this doesn't much matter, as then all that really matters is REPORT_ID, REPORT_COUNT, and REPORT_SIZE

@JoergAtGithub Based on the comments in #249 , the output from this pull request is actually not bad. REPORT_ID (0), REPORT_COUNT (1), and REPORT_SIZE (8) are actually correct. >From @todbot > For vendor usages, this doesn't much matter, as then all that really matters is REPORT_ID, REPORT_COUNT, and REPORT_SIZE
mcuee commented 2021-06-18 05:02:40 -05:00 (Migrated from github.com)

@JoergAtGithub Based on this new understanding, I will say this pull request actually works pretty well.

Another test device (my mod HID FW)

Debug log from this pull request.

06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 01            Report ID (1)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
82 02 01         Input (0x102)
85 02            Report ID (2)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
92 02 01         Output (0x102)
85 03            Report ID (3)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
B2 02 01         Feature (0x102)
85 04            Report ID (4)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
B2 02 01         Feature (0x102)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev6.txt ###

Original FW source code.


ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={
 {
   0x06, 0x00, 0xFF,               // Usage page (Vendor Defined Page1)
   0x09, 0x01,                     // Usage (Vendor Usage 1)
   0xA1, 0x01,                     // Collection (Application)

   // Global items apply to all reports below

   0x15, 0x00,                     // Logical Minimum (0)
   0x26, 0xFF, 0x00,               // Logical Maximum (255)
   0x75, 0x08,                     // Report Size (8 bits)
   0x95, 0x02,                     // Report Count (2 fields)

   // Input report
   0x85, 0x01,                     // Report ID (1)
   0x09, 0x00,                     // Usage (Undefined)
   0x82, 0x02, 0x01,               // Input (Data,Var,Abs,Buf)

   // Output report
   0x85, 0x02,                     // Report ID (2)
   0x09, 0x00,                     // Usage (Undefined)
   0x92, 0x02, 0x01,               // Output (Data,Var,Abs,Buf)

   // Feature report
   0x85, 0x03,                     // Report ID (3)
   0x09, 0x00,                     // Usage (Undefined)
   0xB2, 0x02, 0x01,               // Feature (Data,Var,Abs,Buf)

   // Feature report
   0x85, 0x04,                     // Report ID (4)
   0x09, 0x00,                     // Usage (Undefined)
   0xB2, 0x02, 0x01,               // Feature (Data,Var,Abs,Buf)

   0xC0                            // end collection
 }

Raw data captured from this pull request.

 06  00  FF  09  01  A1  01  85  01  09  00  15  00  26  FF  00  75  08  95  02  82  02  01  85  02  09  00  15  00  26  FF  00  75  08  95  02  92  02  01  85  03  09  00  15  00  26  FF  00  75  08  95  02  B2  02  01  85  04  09  00  15  00  26  FF  00  75  08  95  02  B2  02  01  C0 

Parser output

0x06, 0x00, 0xFF,  // Usage Page (Vendor Defined 0xFF00)
0x09, 0x01,        // Usage (0x01)
0xA1, 0x01,        // Collection (Application)
0x85, 0x01,        //   Report ID (1)
0x09, 0x00,        //   Usage (0x00)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x75, 0x08,        //   Report Size (8)
0x95, 0x02,        //   Report Count (2)
0x82, 0x02, 0x01,  //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Buffered Bytes)
0x85, 0x02,        //   Report ID (2)
0x09, 0x00,        //   Usage (0x00)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x75, 0x08,        //   Report Size (8)
0x95, 0x02,        //   Report Count (2)
0x92, 0x02, 0x01,  //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes)
0x85, 0x03,        //   Report ID (3)
0x09, 0x00,        //   Usage (0x00)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x75, 0x08,        //   Report Size (8)
0x95, 0x02,        //   Report Count (2)
0xB2, 0x02, 0x01,  //   Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes)
0x85, 0x04,        //   Report ID (4)
0x09, 0x00,        //   Usage (0x00)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x75, 0x08,        //   Report Size (8)
0x95, 0x02,        //   Report Count (2)
0xB2, 0x02, 0x01,  //   Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes)
0xC0,              // End Collection

// 72 bytes

@JoergAtGithub Based on this new understanding, I will say this pull request actually works pretty well. Another test device (my mod HID FW) Debug log from this pull request. ``` 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 01 Report ID (1) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) 82 02 01 Input (0x102) 85 02 Report ID (2) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) 92 02 01 Output (0x102) 85 03 Report ID (3) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) B2 02 01 Feature (0x102) 85 04 Report ID (4) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) B2 02 01 Feature (0x102) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev6.txt ### ``` Original FW source code. ``` ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={ { 0x06, 0x00, 0xFF, // Usage page (Vendor Defined Page1) 0x09, 0x01, // Usage (Vendor Usage 1) 0xA1, 0x01, // Collection (Application) // Global items apply to all reports below 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8 bits) 0x95, 0x02, // Report Count (2 fields) // Input report 0x85, 0x01, // Report ID (1) 0x09, 0x00, // Usage (Undefined) 0x82, 0x02, 0x01, // Input (Data,Var,Abs,Buf) // Output report 0x85, 0x02, // Report ID (2) 0x09, 0x00, // Usage (Undefined) 0x92, 0x02, 0x01, // Output (Data,Var,Abs,Buf) // Feature report 0x85, 0x03, // Report ID (3) 0x09, 0x00, // Usage (Undefined) 0xB2, 0x02, 0x01, // Feature (Data,Var,Abs,Buf) // Feature report 0x85, 0x04, // Report ID (4) 0x09, 0x00, // Usage (Undefined) 0xB2, 0x02, 0x01, // Feature (Data,Var,Abs,Buf) 0xC0 // end collection } ``` Raw data captured from this pull request. ``` 06 00 FF 09 01 A1 01 85 01 09 00 15 00 26 FF 00 75 08 95 02 82 02 01 85 02 09 00 15 00 26 FF 00 75 08 95 02 92 02 01 85 03 09 00 15 00 26 FF 00 75 08 95 02 B2 02 01 85 04 09 00 15 00 26 FF 00 75 08 95 02 B2 02 01 C0 ``` Parser output ``` 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 0x09, 0x01, // Usage (0x01) 0xA1, 0x01, // Collection (Application) 0x85, 0x01, // Report ID (1) 0x09, 0x00, // Usage (0x00) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x02, // Report Count (2) 0x82, 0x02, 0x01, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Buffered Bytes) 0x85, 0x02, // Report ID (2) 0x09, 0x00, // Usage (0x00) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x02, // Report Count (2) 0x92, 0x02, 0x01, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes) 0x85, 0x03, // Report ID (3) 0x09, 0x00, // Usage (0x00) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x02, // Report Count (2) 0xB2, 0x02, 0x01, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes) 0x85, 0x04, // Report ID (4) 0x09, 0x00, // Usage (0x00) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x02, // Report Count (2) 0xB2, 0x02, 0x01, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile,Buffered Bytes) 0xC0, // End Collection // 72 bytes ```
JoergAtGithub commented 2021-06-18 13:22:26 -05:00 (Migrated from github.com)

An approach to test this PR with third party HID devices is, to read the real Report Descriptor on Linux or MacOS, and compare it with the output of this reconstructor code.

An approach to test this PR with third party HID devices is, to read the real Report Descriptor on Linux or MacOS, and compare it with the output of this reconstructor code.
mcuee commented 2021-06-18 20:21:36 -05:00 (Migrated from github.com)

Is it possible to print the device VID:PID in the debug log so that it is easy to correlate the hid report descriptor dump text file with the HID device?

Is it possible to print the device VID:PID in the debug log so that it is easy to correlate the hid report descriptor dump text file with the HID device?
JoergAtGithub commented 2021-06-20 08:45:23 -05:00 (Migrated from github.com)

Is it possible to print the device VID:PID in the debug log so that it is easy to correlate the hid report descriptor dump text file with the HID device?

Done!
grafik

> > > Is it possible to print the device VID:PID in the debug log so that it is easy to correlate the hid report descriptor dump text file with the HID device? Done! ![grafik](https://user-images.githubusercontent.com/64457745/122676456-8341bb00-d1de-11eb-8441-408d5579d80a.png)
mcuee commented 2021-06-20 09:14:41 -05:00 (Migrated from github.com)

Now it is much easier for me to correlate the device. Thanks.

C:\work\hid\hidapi_test\windows\x64\Debug> .\hidtest.exe
hidapi test/example tool. Compiled with hidapi version 0.10.1, runtime version 0.10.1.
Compile-time version matches runtime version of hidapi.

Manufacturer (VID): Logitech   Product (PID): USB Receiver
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 02            Report ID (2)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 10            Usage Maximum (16)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 10            Report Count (16)
81 02            Input (0x02)
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 01 F8         Logical Minimum (-2047)
26 FF 07         Logical Maximum (2047)
75 0C            Report Size (12)
95 02            Report Count (2)
81 06            Input (0x06)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev0.txt ###
Manufacturer (VID): Logitech   Product (PID): USB Receiver
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
19 01            Usage Minimum (1)
2A 8C 02         Usage Maximum (652)
15 01            Logical Minimum (1)
26 8C 02         Logical Maximum (652)
75 10            Report Size (16)
95 02            Report Count (2)
81 00            Input (0x00)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev1.txt ###
Manufacturer (VID): Logitech   Product (PID): USB Receiver
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
19 00            Usage Minimum (0)
29 A4            Usage Maximum (164)
15 00            Logical Minimum (0)
26 A4 00         Logical Maximum (164)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
91 02            Output (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev2.txt ###
Manufacturer (VID): Logitech   Product (PID): USB Receiver
05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 04            Report ID (4)
09 83            Usage (131)
09 81            Usage (129)
09 82            Usage (130)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 60            Input (0x60)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev3.txt ###
Manufacturer (VID): Logitech   Product (PID): USB Receiver
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 10            Report ID (16)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev4.txt ###
Manufacturer (VID): Microsoft   Product (PID): HIDI2C Device
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 01            Report ID (1)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 02            Usage Maximum (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 02            Input (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 02            Report Count (2)
81 06            Input (0x06)
C0               End Collection
85 0E            Report ID (14)
06 00 FF         Usage Page (65280)
09 C5            Usage (197)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 03            Report Count (3)
B1 02            Feature (0x02)
09 01            Usage (1)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 01            Report Count (1)
B1 02            Feature (0x02)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev5.txt ###
Manufacturer (VID): Logitech   Product (PID): USB Receiver
06 00 FF         Usage Page (65280)
09 02            Usage  (2)
A1 01            Collection (Application)
85 11            Report ID (17)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev6.txt ###
Manufacturer (VID): Microsoft   Product (PID): HIDI2C Device
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 5C            Report ID (92)
09 01            Usage (1)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 0B            Report Count (11)
81 06            Input (0x06)
85 0D            Report ID (13)
09 C5            Usage (197)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 04            Report Count (4)
B1 02            Feature (0x02)
85 0C            Report ID (12)
09 C6            Usage (198)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
96 C0 02         Report Count (704)
B1 02            Feature (0x02)
85 0B            Report ID (11)
09 C7            Usage (199)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 42            Report Count (66)
B1 02            Feature (0x02)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev7.txt ###
Manufacturer (VID): Microsoft   Product (PID): HIDI2C Device
05 0D            Usage Page (13)
09 05            Usage  (5)
A1 01            Collection (Application)
85 04            Report ID (4)
05 09            Usage Page (9)
09 C5            Usage (197)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 02            Report Count (2)
81 03            Input (0x03)
05 0D            Usage Page (13)
09 22            Usage  (34)
A1 02            Collection (Logical)
09 47            Usage (71)
09 42            Usage (66)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
81 02            Input (0x02)
75 02            Report Size (2)
95 01            Report Count (1)
81 03            Input (0x03) Padding
09 51            Usage (81)
15 00            Logical Minimum (0)
25 0F            Logical Maximum (15)
75 04            Report Size (4)
95 01            Report Count (1)
81 02            Input (0x02)
05 01            Usage Page (1)
09 30            Usage (48)
15 00            Logical Minimum (0)
26 A2 0C         Logical Maximum (3234)
35 00            Physical Minimum (0)
46 94 01         Physical Maximum (404)
55 0E            Unit Exponent (14)
65 13            Unit (19)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 31            Usage (49)
15 00            Logical Minimum (0)
26 26 09         Logical Maximum (2342)
35 00            Physical Minimum (0)
46 24 01         Physical Maximum (292)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
C0               End Collection
05 0D            Usage Page (13)
09 56            Usage (86)
15 00            Logical Minimum (0)
27 FF FF 00 00   Logical Maximum (65535)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 54            Usage (84)
15 00            Logical Minimum (0)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
05 09            Usage Page (9)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
81 02            Input (0x02)
85 07            Report ID (7)
05 0D            Usage Page (13)
09 60            Usage (96)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 02            Feature (0x02)
85 02            Report ID (2)
09 55            Usage (85)
09 59            Usage (89)
15 00            Logical Minimum (0)
25 0F            Logical Maximum (15)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 04            Report Size (4)
95 02            Report Count (2)
B1 02            Feature (0x02)
85 06            Report ID (6)
06 00 FF         Usage Page (65280)
09 C5            Usage (197)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
96 00 01         Report Count (256)
B1 02            Feature (0x02)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev8.txt ###
Manufacturer (VID): Microsoft   Product (PID): HIDI2C Device
05 0D            Usage Page (13)
09 0E            Usage  (14)
A1 01            Collection (Application)
09 22            Usage  (34)
A1 00            Collection (Physical)
85 03            Report ID (3)
09 52            Usage (82)
15 00            Logical Minimum (0)
25 0A            Logical Maximum (10)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 10            Report Size (16)
95 01            Report Count (1)
B1 02            Feature (0x02)
C0               End Collection
09 22            Usage  (34)
A1 00            Collection (Physical)
85 05            Report ID (5)
09 57            Usage (87)
09 58            Usage (88)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
B1 02            Feature (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev9.txt ###
Manufacturer (VID): Acer Inc.   Product (PID): Launch Manager Wireless Device
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 40            Report ID (64)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 10            Report Count (16)
81 02            Input (0x02)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 10            Report Count (16)
91 02            Output (0x02)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev10.txt ###
Manufacturer (VID): Acer Inc.   Product (PID): Launch Manager Wireless Device
05 01            Usage Page (1)
09 0C            Usage  (12)
A1 01            Collection (Application)
85 01            Report ID (1)
09 C6            Usage (198)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev11.txt ###
Manufacturer (VID): Lakeview Research   Product (PID): Generic HID
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 01            Report ID (1)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
82 02 01         Input (0x102)
85 02            Report ID (2)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
92 02 01         Output (0x102)
85 03            Report ID (3)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
B2 02 01         Feature (0x102)
85 04            Report ID (4)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
B2 02 01         Feature (0x102)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev12.txt ###
Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&2fa52f82&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0x1)

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&2fa52f82&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xc)

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_00#7&73a81b9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    0
  Usage (page): 0x6 (0x1)

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&2fa52f82&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x80 (0x1)

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&2fa52f82&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xff00)

Device Found
  type: 04f3 3060
  path: \\?\hid#elan0501&col01#5&10870616&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      3
  Interface:    -1
  Usage (page): 0x2 (0x1)

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&2fa52f82&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0xff00)

Device Found
  type: 04f3 3060
  path: \\?\hid#elan0501&col02#5&10870616&1&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      3
  Interface:    -1
  Usage (page): 0x1 (0xff00)

Device Found
  type: 04f3 3060
  path: \\?\hid#elan0501&col03#5&10870616&1&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      3
  Interface:    -1
  Usage (page): 0x5 (0xd)

Device Found
  type: 04f3 3060
  path: \\?\hid#elan0501&col04#5&10870616&1&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      3
  Interface:    -1
  Usage (page): 0xe (0xd)

Device Found
  type: 2bf6 a096
  path: \\?\hid#hidclass&col01#1&2d595ca7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Acer Inc.
  Product:      Launch Manager Wireless Device
  Release:      1
  Interface:    -1
  Usage (page): 0x1 (0xff00)

Device Found
  type: 2bf6 a096
  path: \\?\hid#hidclass&col02#1&2d595ca7&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Acer Inc.
  Product:      Launch Manager Wireless Device
  Release:      1
  Interface:    -1
  Usage (page): 0xc (0x1)

Device Found
  type: 0925 7001
  path: \\?\hid#vid_0925&pid_7001#6&5fe1b9d&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: (null)
  Manufacturer: Lakeview Research
  Product:      Generic HID
  Release:      1
  Interface:    -1
  Usage (page): 0x1 (0xff00)

unable to open device

Now it is much easier for me to correlate the device. Thanks. ``` C:\work\hid\hidapi_test\windows\x64\Debug> .\hidtest.exe hidapi test/example tool. Compiled with hidapi version 0.10.1, runtime version 0.10.1. Compile-time version matches runtime version of hidapi. Manufacturer (VID): Logitech Product (PID): USB Receiver 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 02 Report ID (2) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 10 Usage Maximum (16) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 10 Report Count (16) 81 02 Input (0x02) 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 01 F8 Logical Minimum (-2047) 26 FF 07 Logical Maximum (2047) 75 0C Report Size (12) 95 02 Report Count (2) 81 06 Input (0x06) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev0.txt ### Manufacturer (VID): Logitech Product (PID): USB Receiver 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 19 01 Usage Minimum (1) 2A 8C 02 Usage Maximum (652) 15 01 Logical Minimum (1) 26 8C 02 Logical Maximum (652) 75 10 Report Size (16) 95 02 Report Count (2) 81 00 Input (0x00) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev1.txt ### Manufacturer (VID): Logitech Product (PID): USB Receiver 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 A4 Usage Maximum (164) 15 00 Logical Minimum (0) 26 A4 00 Logical Maximum (164) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 91 02 Output (0x02) 75 03 Report Size (3) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev2.txt ### Manufacturer (VID): Logitech Product (PID): USB Receiver 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 04 Report ID (4) 09 83 Usage (131) 09 81 Usage (129) 09 82 Usage (130) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 60 Input (0x60) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev3.txt ### Manufacturer (VID): Logitech Product (PID): USB Receiver 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 10 Report ID (16) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev4.txt ### Manufacturer (VID): Microsoft Product (PID): HIDI2C Device 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 01 Report ID (1) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 02 Usage Maximum (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 02 Input (0x02) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 02 Report Count (2) 81 06 Input (0x06) C0 End Collection 85 0E Report ID (14) 06 00 FF Usage Page (65280) 09 C5 Usage (197) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 03 Report Count (3) B1 02 Feature (0x02) 09 01 Usage (1) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) B1 02 Feature (0x02) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev5.txt ### Manufacturer (VID): Logitech Product (PID): USB Receiver 06 00 FF Usage Page (65280) 09 02 Usage (2) A1 01 Collection (Application) 85 11 Report ID (17) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev6.txt ### Manufacturer (VID): Microsoft Product (PID): HIDI2C Device 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 5C Report ID (92) 09 01 Usage (1) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 0B Report Count (11) 81 06 Input (0x06) 85 0D Report ID (13) 09 C5 Usage (197) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 04 Report Count (4) B1 02 Feature (0x02) 85 0C Report ID (12) 09 C6 Usage (198) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 96 C0 02 Report Count (704) B1 02 Feature (0x02) 85 0B Report ID (11) 09 C7 Usage (199) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 42 Report Count (66) B1 02 Feature (0x02) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev7.txt ### Manufacturer (VID): Microsoft Product (PID): HIDI2C Device 05 0D Usage Page (13) 09 05 Usage (5) A1 01 Collection (Application) 85 04 Report ID (4) 05 09 Usage Page (9) 09 C5 Usage (197) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 02 Report Count (2) 81 03 Input (0x03) 05 0D Usage Page (13) 09 22 Usage (34) A1 02 Collection (Logical) 09 47 Usage (71) 09 42 Usage (66) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) 81 02 Input (0x02) 75 02 Report Size (2) 95 01 Report Count (1) 81 03 Input (0x03) Padding 09 51 Usage (81) 15 00 Logical Minimum (0) 25 0F Logical Maximum (15) 75 04 Report Size (4) 95 01 Report Count (1) 81 02 Input (0x02) 05 01 Usage Page (1) 09 30 Usage (48) 15 00 Logical Minimum (0) 26 A2 0C Logical Maximum (3234) 35 00 Physical Minimum (0) 46 94 01 Physical Maximum (404) 55 0E Unit Exponent (14) 65 13 Unit (19) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 31 Usage (49) 15 00 Logical Minimum (0) 26 26 09 Logical Maximum (2342) 35 00 Physical Minimum (0) 46 24 01 Physical Maximum (292) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) C0 End Collection 05 0D Usage Page (13) 09 56 Usage (86) 15 00 Logical Minimum (0) 27 FF FF 00 00 Logical Maximum (65535) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 54 Usage (84) 15 00 Logical Minimum (0) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) 05 09 Usage Page (9) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) 81 02 Input (0x02) 85 07 Report ID (7) 05 0D Usage Page (13) 09 60 Usage (96) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 02 Feature (0x02) 85 02 Report ID (2) 09 55 Usage (85) 09 59 Usage (89) 15 00 Logical Minimum (0) 25 0F Logical Maximum (15) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 04 Report Size (4) 95 02 Report Count (2) B1 02 Feature (0x02) 85 06 Report ID (6) 06 00 FF Usage Page (65280) 09 C5 Usage (197) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 96 00 01 Report Count (256) B1 02 Feature (0x02) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev8.txt ### Manufacturer (VID): Microsoft Product (PID): HIDI2C Device 05 0D Usage Page (13) 09 0E Usage (14) A1 01 Collection (Application) 09 22 Usage (34) A1 00 Collection (Physical) 85 03 Report ID (3) 09 52 Usage (82) 15 00 Logical Minimum (0) 25 0A Logical Maximum (10) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 10 Report Size (16) 95 01 Report Count (1) B1 02 Feature (0x02) C0 End Collection 09 22 Usage (34) A1 00 Collection (Physical) 85 05 Report ID (5) 09 57 Usage (87) 09 58 Usage (88) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) B1 02 Feature (0x02) 75 06 Report Size (6) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev9.txt ### Manufacturer (VID): Acer Inc. Product (PID): Launch Manager Wireless Device 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 40 Report ID (64) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 10 Report Count (16) 81 02 Input (0x02) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 10 Report Count (16) 91 02 Output (0x02) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev10.txt ### Manufacturer (VID): Acer Inc. Product (PID): Launch Manager Wireless Device 05 01 Usage Page (1) 09 0C Usage (12) A1 01 Collection (Application) 85 01 Report ID (1) 09 C6 Usage (198) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev11.txt ### Manufacturer (VID): Lakeview Research Product (PID): Generic HID 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 01 Report ID (1) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) 82 02 01 Input (0x102) 85 02 Report ID (2) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) 92 02 01 Output (0x102) 85 03 Report ID (3) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) B2 02 01 Feature (0x102) 85 04 Report ID (4) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) B2 02 01 Feature (0x102) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev12.txt ### Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&2fa52f82&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0x1) Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&2fa52f82&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xc) Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_00#7&73a81b9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 0 Usage (page): 0x6 (0x1) Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&2fa52f82&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x80 (0x1) Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&2fa52f82&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xff00) Device Found type: 04f3 3060 path: \\?\hid#elan0501&col01#5&10870616&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 3 Interface: -1 Usage (page): 0x2 (0x1) Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&2fa52f82&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0xff00) Device Found type: 04f3 3060 path: \\?\hid#elan0501&col02#5&10870616&1&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 3 Interface: -1 Usage (page): 0x1 (0xff00) Device Found type: 04f3 3060 path: \\?\hid#elan0501&col03#5&10870616&1&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 3 Interface: -1 Usage (page): 0x5 (0xd) Device Found type: 04f3 3060 path: \\?\hid#elan0501&col04#5&10870616&1&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 3 Interface: -1 Usage (page): 0xe (0xd) Device Found type: 2bf6 a096 path: \\?\hid#hidclass&col01#1&2d595ca7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Acer Inc. Product: Launch Manager Wireless Device Release: 1 Interface: -1 Usage (page): 0x1 (0xff00) Device Found type: 2bf6 a096 path: \\?\hid#hidclass&col02#1&2d595ca7&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Acer Inc. Product: Launch Manager Wireless Device Release: 1 Interface: -1 Usage (page): 0xc (0x1) Device Found type: 0925 7001 path: \\?\hid#vid_0925&pid_7001#6&5fe1b9d&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: (null) Manufacturer: Lakeview Research Product: Generic HID Release: 1 Interface: -1 Usage (page): 0x1 (0xff00) unable to open device ```
mcuee commented 2021-06-20 09:18:47 -05:00 (Migrated from github.com)

Debug output from #262, and I can confirm it is correct for my modded Lakeview Research Generic HID device.

Manufacturer (VID): Lakeview Research   Product (PID): Generic HID
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 01            Report ID (1)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
82 02 01         Input (0x102)
85 02            Report ID (2)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
92 02 01         Output (0x102)
85 03            Report ID (3)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
B2 02 01         Feature (0x102)
85 04            Report ID (4)
09 00            Usage (0)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 02            Report Count (2)
B2 02 01         Feature (0x102)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev12.txt ###

Original FW codes.

ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={
 {
   0x06, 0x00, 0xFF,               // Usage page (Vendor Defined Page1)
   0x09, 0x01,                     // Usage (Vendor Usage 1)
   0xA1, 0x01,                     // Collection (Application)

   // Global items apply to all reports below

   0x15, 0x00,                     // Logical Minimum (0)
   0x26, 0xFF, 0x00,               // Logical Maximum (255)
   0x75, 0x08,                     // Report Size (8 bits)
   0x95, 0x02,                     // Report Count (2 fields)

   // Input report
   0x85, 0x01,                     // Report ID (1)
   0x09, 0x00,                     // Usage (Undefined)
   0x82, 0x02, 0x01,               // Input (Data,Var,Abs,Buf)

   // Output report
   0x85, 0x02,                     // Report ID (2)
   0x09, 0x00,                     // Usage (Undefined)
   0x92, 0x02, 0x01,               // Output (Data,Var,Abs,Buf)

   // Feature report
   0x85, 0x03,                     // Report ID (3)
   0x09, 0x00,                     // Usage (Undefined)
   0xB2, 0x02, 0x01,               // Feature (Data,Var,Abs,Buf)

   // Feature report
   0x85, 0x04,                     // Report ID (4)
   0x09, 0x00,                     // Usage (Undefined)
   0xB2, 0x02, 0x01,               // Feature (Data,Var,Abs,Buf)

   0xC0                            // end collection

Equivalent FW codes:

ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={
 {
   0x06, 0x00, 0xFF,               // Usage page (Vendor Defined Page1)
   0x09, 0x01,                     // Usage (Vendor Usage 1)
   0xA1, 0x01,                     // Collection (Application)

   // Input report
   0x85, 0x01,                     // Report ID (1)
   0x09, 0x00,                     // Usage (Undefined)
   0x15, 0x00,                     // Logical Minimum (0)
   0x26, 0xFF, 0x00,               // Logical Maximum (255)
   0x75, 0x08,                     // Report Size (8 bits)
   0x95, 0x02,                     // Report Count (2 fields)
   0x82, 0x02, 0x01,               // Input (Data,Var,Abs,Buf)

   // Output report
   0x85, 0x02,                     // Report ID (2)
   0x09, 0x00,                     // Usage (Undefined)
   0x15, 0x00,                     // Logical Minimum (0)
   0x26, 0xFF, 0x00,               // Logical Maximum (255)
   0x75, 0x08,                     // Report Size (8 bits)
   0x95, 0x02,                     // Report Count (2 fields)
   0x92, 0x02, 0x01,               // Output (Data,Var,Abs,Buf)

   // Feature report
   0x85, 0x03,                     // Report ID (3)
   0x09, 0x00,                     // Usage (Undefined)
   0x15, 0x00,                     // Logical Minimum (0)
   0x26, 0xFF, 0x00,               // Logical Maximum (255)
   0x75, 0x08,                     // Report Size (8 bits)
   0x95, 0x02,                     // Report Count (2 fields)
   0xB2, 0x02, 0x01,               // Feature (Data,Var,Abs,Buf)

   // Feature report
   0x85, 0x04,                     // Report ID (4)
   0x09, 0x00,                     // Usage (Undefined)
   0x15, 0x00,                     // Logical Minimum (0)
   0x26, 0xFF, 0x00,               // Logical Maximum (255)
   0x75, 0x08,                     // Report Size (8 bits)
   0x95, 0x02,                     // Report Count (2 fields)
   0xB2, 0x02, 0x01,               // Feature (Data,Var,Abs,Buf)

   0xC0                            // end collection

Reformat of the raw debug text file

 06  00  FF  09  01  A1  01

 85  01  09  00  15  00  26  FF  00  75  08  95  02  82  02  01 

 85  02  09  00  15  00  26  FF  00  75  08  95  02  92  02  01  

 85  03  09  00  15  00  26  FF  00  75  08  95  02  B2  02  01  

 85  04  09  00  15  00  26  FF  00  75  08  95  02  B2  02  01 

 C0 

Debug output from #262, and I can confirm it is correct for my modded Lakeview Research Generic HID device. ``` Manufacturer (VID): Lakeview Research Product (PID): Generic HID 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 01 Report ID (1) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) 82 02 01 Input (0x102) 85 02 Report ID (2) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) 92 02 01 Output (0x102) 85 03 Report ID (3) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) B2 02 01 Feature (0x102) 85 04 Report ID (4) 09 00 Usage (0) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 02 Report Count (2) B2 02 01 Feature (0x102) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev12.txt ### ``` Original FW codes. ``` ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={ { 0x06, 0x00, 0xFF, // Usage page (Vendor Defined Page1) 0x09, 0x01, // Usage (Vendor Usage 1) 0xA1, 0x01, // Collection (Application) // Global items apply to all reports below 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8 bits) 0x95, 0x02, // Report Count (2 fields) // Input report 0x85, 0x01, // Report ID (1) 0x09, 0x00, // Usage (Undefined) 0x82, 0x02, 0x01, // Input (Data,Var,Abs,Buf) // Output report 0x85, 0x02, // Report ID (2) 0x09, 0x00, // Usage (Undefined) 0x92, 0x02, 0x01, // Output (Data,Var,Abs,Buf) // Feature report 0x85, 0x03, // Report ID (3) 0x09, 0x00, // Usage (Undefined) 0xB2, 0x02, 0x01, // Feature (Data,Var,Abs,Buf) // Feature report 0x85, 0x04, // Report ID (4) 0x09, 0x00, // Usage (Undefined) 0xB2, 0x02, 0x01, // Feature (Data,Var,Abs,Buf) 0xC0 // end collection ``` Equivalent FW codes: ``` ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={ { 0x06, 0x00, 0xFF, // Usage page (Vendor Defined Page1) 0x09, 0x01, // Usage (Vendor Usage 1) 0xA1, 0x01, // Collection (Application) // Input report 0x85, 0x01, // Report ID (1) 0x09, 0x00, // Usage (Undefined) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8 bits) 0x95, 0x02, // Report Count (2 fields) 0x82, 0x02, 0x01, // Input (Data,Var,Abs,Buf) // Output report 0x85, 0x02, // Report ID (2) 0x09, 0x00, // Usage (Undefined) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8 bits) 0x95, 0x02, // Report Count (2 fields) 0x92, 0x02, 0x01, // Output (Data,Var,Abs,Buf) // Feature report 0x85, 0x03, // Report ID (3) 0x09, 0x00, // Usage (Undefined) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8 bits) 0x95, 0x02, // Report Count (2 fields) 0xB2, 0x02, 0x01, // Feature (Data,Var,Abs,Buf) // Feature report 0x85, 0x04, // Report ID (4) 0x09, 0x00, // Usage (Undefined) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8 bits) 0x95, 0x02, // Report Count (2 fields) 0xB2, 0x02, 0x01, // Feature (Data,Var,Abs,Buf) 0xC0 // end collection ``` Reformat of the raw debug text file ``` 06 00 FF 09 01 A1 01 85 01 09 00 15 00 26 FF 00 75 08 95 02 82 02 01 85 02 09 00 15 00 26 FF 00 75 08 95 02 92 02 01 85 03 09 00 15 00 26 FF 00 75 08 95 02 B2 02 01 85 04 09 00 15 00 26 FF 00 75 08 95 02 B2 02 01 C0 ```
mcuee commented 2021-06-20 21:25:48 -05:00 (Migrated from github.com)

Test result for Microchip PICkit 2. There seems to be a problem with report count reporting from #262.
It seems to me the FW source codes may be a bit confusing. Let me check if the source code matches the device.

Manufacturer (VID): Microchip Technology Inc.   Product (PID): PICkit 2 Microcontroller Programmer
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 01            Report Count (1)
91 02            Output (0x02)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev10.txt ###

Original FW source code


rom struct{byte report[29];}hid_rpt01={
    0x06, 0x00, 0xFF,       // Usage Page (Vendor Defined)
    0x09, 0x01,             // Usage (Vendor Usage)
    0xA1, 0x01,             // Collection (Application)
    0x19, 0x01,             //      Usage Minimum (Vendor Usage = 1)
//    0x29, 0x08,             //      Usage Maximum (Vendor Usage = 8)
    0x29, 0x40,             //      Usage Maximum (Vendor Usage = 64)
    0x15, 0x00,             //      Logical Minimum (Vendor Usage = 0)
    0x26, 0xFF, 0x00,       //      Logical Maximum (Vendor Usage = 255)
    0x75, 0x08,             //      Report Size (Vendor Usage = 8)
//    0x95, 0x08,             //      Report Count (Vendor Usage = 8)
    0x95, 0x40,             //      Report Count (Vendor Usage = 64)
    0x81, 0x02,             //      Input (Data, Var, Abs)
    0x19, 0x01,             //      Usage Minimum (Vendor Usage = 1)
//    0x29, 0x08,             //      Usage Maximum (Vendor Usage = 8)
    0x29, 0x40,             //      Usage Maximum (Vendor Usage = 64)
    0x91, 0x02,             //      Output (Data, Var, Ads)
    0xC0};                  // End Collection

FW hex file

:100D8000000600FF0901A10119012940150026FFF5
:100D900000750895408102190129409102C0720C2A

From FW hex file

06 00 FF 09 01 A1 01 
19 01 29 40 15 00 26 FF 00 75 08 95 40 81 02 
19 01 29 40 91 02 
C0

HID report parser output: https://eleccelerator.com/usbdescreqparser/

0x06, 0x00, 0xFF,  // Usage Page (Vendor Defined 0xFF00)
0x09, 0x01,        // Usage (0x01)
0xA1, 0x01,        // Collection (Application)
0x19, 0x01,        //   Usage Minimum (0x01)
0x29, 0x40,        //   Usage Maximum (0x40)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x75, 0x08,        //   Report Size (8)
0x95, 0x40,        //   Report Count (64)
0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x19, 0x01,        //   Usage Minimum (0x01)
0x29, 0x40,        //   Usage Maximum (0x40)
0x91, 0x02,        //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              // End Collection

// 29 bytes

FYI HIDSharp is totally wrong with Microchip PICkit 2.

\\?\hid#vid_04d8&pid_0033#e&704b911&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
Microchip Technology Inc. PICkit 2 Microcontroller Programmer PIC18F2550 (VID 1240, PID 51, version 0.1)
Max Lengths: Input 65, Output 65, Feature 0
Serial Ports: 
Report Descriptor:
  06 00 FF 09 01 A1 01 15 00 25 01 35 00 45 01 65 00 55 00 75 01 96 00 02 81 03 91 03 C1 00 (30 bytes)
  UsagePage 65280
  Usage 1
  Collection 1
    LogicalMinimum 0
    LogicalMaximum 1
    PhysicalMinimum 0
    PhysicalMaximum 1
    Unit 0
    UnitExponent 0
    ReportSize 1
    ReportCount 512
    Input 3
    Output 3
  EndCollection 0
Usage: FF000001 4278190081
Input: ReportID=0, Length=65, Items=1
  512 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: 
Output: ReportID=0, Length=65, Items=1
  512 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: 
Opening device for 20 seconds...
Opened device.
Closed device
Test result for Microchip PICkit 2. There seems to be a problem with report count reporting from #262. It seems to me the FW source codes may be a bit confusing. Let me check if the source code matches the device. ``` Manufacturer (VID): Microchip Technology Inc. Product (PID): PICkit 2 Microcontroller Programmer 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) 91 02 Output (0x02) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev10.txt ### ``` Original FW source code ``` rom struct{byte report[29];}hid_rpt01={ 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined) 0x09, 0x01, // Usage (Vendor Usage) 0xA1, 0x01, // Collection (Application) 0x19, 0x01, // Usage Minimum (Vendor Usage = 1) // 0x29, 0x08, // Usage Maximum (Vendor Usage = 8) 0x29, 0x40, // Usage Maximum (Vendor Usage = 64) 0x15, 0x00, // Logical Minimum (Vendor Usage = 0) 0x26, 0xFF, 0x00, // Logical Maximum (Vendor Usage = 255) 0x75, 0x08, // Report Size (Vendor Usage = 8) // 0x95, 0x08, // Report Count (Vendor Usage = 8) 0x95, 0x40, // Report Count (Vendor Usage = 64) 0x81, 0x02, // Input (Data, Var, Abs) 0x19, 0x01, // Usage Minimum (Vendor Usage = 1) // 0x29, 0x08, // Usage Maximum (Vendor Usage = 8) 0x29, 0x40, // Usage Maximum (Vendor Usage = 64) 0x91, 0x02, // Output (Data, Var, Ads) 0xC0}; // End Collection ``` FW hex file ``` :100D8000000600FF0901A10119012940150026FFF5 :100D900000750895408102190129409102C0720C2A ``` From FW hex file ``` 06 00 FF 09 01 A1 01 19 01 29 40 15 00 26 FF 00 75 08 95 40 81 02 19 01 29 40 91 02 C0 ``` HID report parser output: https://eleccelerator.com/usbdescreqparser/ ``` 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 0x09, 0x01, // Usage (0x01) 0xA1, 0x01, // Collection (Application) 0x19, 0x01, // Usage Minimum (0x01) 0x29, 0x40, // Usage Maximum (0x40) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x40, // Report Count (64) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x19, 0x01, // Usage Minimum (0x01) 0x29, 0x40, // Usage Maximum (0x40) 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection // 29 bytes ``` FYI HIDSharp is totally wrong with Microchip PICkit 2. ``` \\?\hid#vid_04d8&pid_0033#e&704b911&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} Microchip Technology Inc. PICkit 2 Microcontroller Programmer PIC18F2550 (VID 1240, PID 51, version 0.1) Max Lengths: Input 65, Output 65, Feature 0 Serial Ports: Report Descriptor: 06 00 FF 09 01 A1 01 15 00 25 01 35 00 45 01 65 00 55 00 75 01 96 00 02 81 03 91 03 C1 00 (30 bytes) UsagePage 65280 Usage 1 Collection 1 LogicalMinimum 0 LogicalMaximum 1 PhysicalMinimum 0 PhysicalMaximum 1 Unit 0 UnitExponent 0 ReportSize 1 ReportCount 512 Input 3 Output 3 EndCollection 0 Usage: FF000001 4278190081 Input: ReportID=0, Length=65, Items=1 512 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Output: ReportID=0, Length=65, Items=1 512 Elements x 1 Bits, Units: None, Expected Usage Type: 0, Flags: Constant, Variable, Usages: Opening device for 20 seconds... Opened device. Closed device ```
mcuee commented 2021-06-20 22:48:59 -05:00 (Migrated from github.com)

There is a problem with the Microchip Simple HID demo as well. Report size is not correct.

Manufacturer (VID): Microchip Technology Inc.   Product (PID): Simple HID Device Demo
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 40            Report Count (64)
81 00            Input (0x00)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 40            Report Count (64)
91 00            Output (0x00)
C0               End Collection
### Wrote report descriptor file: hid_report_descriptor_0_0_dev17.txt ###

FW source codes:

ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={
{
    0x06, 0x00, 0xFF,       // Usage Page = 0xFF00 (Vendor Defined Page 1)
    0x09, 0x01,             // Usage (Vendor Usage 1)
    0xA1, 0x01,             // Collection (Application)
    0x19, 0x01,             //      Usage Minimum 
    0x29, 0x40,             //      Usage Maximum 	//64 input usages total (0x01 to 0x40)
    0x15, 0x01,             //      Logical Minimum (data bytes in the report may have minimum value = 0x00)
    0x25, 0x40,      	  	//      Logical Maximum (data bytes in the report may have maximum value = 0x00FF = unsigned 255)
    0x75, 0x08,             //      Report Size: 8-bit field size
    0x95, 0x40,             //      Report Count: Make sixty-four 8-bit fields (the next time the parser hits an "Input", "Output", or "Feature" item)
    0x81, 0x00,             //      Input (Data, Array, Abs): Instantiates input packet fields based on the above report size, count, logical min/max, and usage.
    0x19, 0x01,             //      Usage Minimum 
    0x29, 0x40,             //      Usage Maximum 	//64 output usages total (0x01 to 0x40)
    0x91, 0x00,             //      Output (Data, Array, Abs): Instantiates output packet fields.  Uses same report size and count as "Input" fields, since nothing new/different was specified to the parser since the "Input" item.
    0xC0}                   // End Collection
};    

Again HIDSharp is worse than #262.

\\?\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.

There is a problem with the Microchip Simple HID demo as well. Report size is not correct. ``` Manufacturer (VID): Microchip Technology Inc. Product (PID): Simple HID Device Demo 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 40 Report Count (64) 81 00 Input (0x00) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 40 Report Count (64) 91 00 Output (0x00) C0 End Collection ### Wrote report descriptor file: hid_report_descriptor_0_0_dev17.txt ### ``` FW source codes: ``` ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={ { 0x06, 0x00, 0xFF, // Usage Page = 0xFF00 (Vendor Defined Page 1) 0x09, 0x01, // Usage (Vendor Usage 1) 0xA1, 0x01, // Collection (Application) 0x19, 0x01, // Usage Minimum 0x29, 0x40, // Usage Maximum //64 input usages total (0x01 to 0x40) 0x15, 0x01, // Logical Minimum (data bytes in the report may have minimum value = 0x00) 0x25, 0x40, // Logical Maximum (data bytes in the report may have maximum value = 0x00FF = unsigned 255) 0x75, 0x08, // Report Size: 8-bit field size 0x95, 0x40, // Report Count: Make sixty-four 8-bit fields (the next time the parser hits an "Input", "Output", or "Feature" item) 0x81, 0x00, // Input (Data, Array, Abs): Instantiates input packet fields based on the above report size, count, logical min/max, and usage. 0x19, 0x01, // Usage Minimum 0x29, 0x40, // Usage Maximum //64 output usages total (0x01 to 0x40) 0x91, 0x00, // Output (Data, Array, Abs): Instantiates output packet fields. Uses same report size and count as "Input" fields, since nothing new/different was specified to the parser since the "Input" item. 0xC0} // End Collection }; ``` Again HIDSharp is worse than #262. ``` \\?\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. ```
mcuee commented 2021-06-20 22:53:42 -05:00 (Migrated from github.com)

It seems to me that HID report can be of many different variations and it is not easy to get right if you do not know the HID report format.

But if you know the device, then you can get it right. That is probably the initial thought of Alan Ott.

It seems to me that HID report can be of many different variations and it is not easy to get right if you do not know the HID report format. But if you know the device, then you can get it right. That is probably the initial thought of Alan Ott.
JoergAtGithub commented 2021-06-21 01:39:39 -05:00 (Migrated from github.com)

1.)
The "Test result for Microchip PICkit 2. There seems to be a problem with report count reporting" is the second issue described in the description of this PR. I'm pretty sure, that I can fix this case, because in these case (value array(report_size > 1) with Usage-Range(Usagemin/Max)):

  • #262 gets the ReportSize correct but not the Report Count
  • HidSharp gets always the number of bits correct (ReportSize multiplied with ReportCount)

If I adapt the code from HidSharp correct into #262, I can get both.

2.)
The second case is more difficult, because WIN32 API seems to detect it wrong (button instead of value). But I hope I can solve this too, because:

  • The number of usages is correct reconstructed. This can be used to determine the ReportCount
  • HidSharp gets always the number of bits correct (ReportSize multiplied with ReportCount)

If I adapt the code from HidSharp correct into #262, I can get ReportCount and Report Size too.

This is all related to the code branch I marked as Experimental, because I don't have a device with Usage-Range:
github.com/libusb/hidapi@b54a041cad/windows/hid.c (L871)

I will provide an update tonight, which hopefully fixes these two cases.

**1.)** The "Test result for Microchip PICkit 2. There seems to be a problem with report count reporting" is the second issue described in the description of this PR. I'm pretty sure, that I can fix this case, because in these case (value array(report_size > 1) with Usage-Range(Usagemin/Max)): - #262 gets the ReportSize correct but not the Report Count - HidSharp gets always the number of bits correct (ReportSize multiplied with ReportCount) If I adapt the code from HidSharp correct into #262, I can get both. **2.)** The second case is more difficult, because WIN32 API seems to detect it wrong (button instead of value). But I hope I can solve this too, because: - The number of usages is correct reconstructed. This can be used to determine the ReportCount - HidSharp gets always the number of bits correct (ReportSize multiplied with ReportCount) If I adapt the code from HidSharp correct into #262, I can get ReportCount and Report Size too. This is all related to the code branch I marked as Experimental, because I don't have a device with Usage-Range: https://github.com/libusb/hidapi/blob/b54a041cad6dee24703bc5baa0db0aa71f068e51/windows/hid.c#L871 I will provide an update tonight, which hopefully fixes these two cases.
mcuee commented 2021-06-21 02:23:14 -05:00 (Migrated from github.com)

That will be great. I can test soon after you have the fixes.

That will be great. I can test soon after you have the fixes.
JoergAtGithub commented 2021-06-21 16:53:12 -05:00 (Migrated from github.com)

The problem is slightly different than I though, I will need another day to provide a proper fix

The problem is slightly different than I though, I will need another day to provide a proper fix
mcuee commented 2021-06-21 20:16:09 -05:00 (Migrated from github.com)

No issues. Take your time. This is a difficult task and so far I will say this pull request produces the best results for me under Windows.

No issues. Take your time. This is a difficult task and so far I will say this pull request produces the best results for me under Windows.
JoergAtGithub commented 2021-07-11 14:42:58 -05:00 (Migrated from github.com)

The last commit doesn't contain changes in the reconstructor code itself, it just moves the call of it into the hid_get_report_descriptor function introduced in #303 .

The last commit doesn't contain changes in the reconstructor code itself, it just moves the call of it into the hid_get_report_descriptor function introduced in #303 .
mcuee commented 2021-07-12 00:06:08 -05:00 (Migrated from github.com)

Latest test shows no more txt files.

click to expand for the debug log using hidtest
hidapi test/example tool. Compiled with hidapi version 0.11.0, runtime version 0.11.0.
Compile-time version matches runtime version of hidapi.

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&383a3a17&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 02            Report ID (2)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 10            Usage Maximum (16)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 10            Report Count (16)
81 02            Input (0x02)
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 01 F8         Logical Minimum (-2047)
26 FF 07         Logical Maximum (2047)
75 0C            Report Size (12)
95 02            Report Count (2)
81 06            Input (0x06)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(75 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 
0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00, 
0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01, 
0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07, 
0x75, 0x0c, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 
0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c, 
0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 
0x01, 0x81, 0x06, 0xc0, 0xc0, 

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&383a3a17&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xc)
  Report Descriptor: 
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
19 01            Usage Minimum (1)
2A 8C 02         Usage Maximum (652)
15 01            Logical Minimum (1)
26 8C 02         Logical Maximum (652)
75 10            Report Size (16)
95 02            Report Count (2)
81 00            Input (0x00)
C0               End Collection
(25 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x01, 
0x2a, 0x8c, 0x02, 0x15, 0x01, 0x26, 0x8c, 0x02, 0x75, 0x10, 
0x95, 0x02, 0x81, 0x00, 0xc0, 

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&383a3a17&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x80 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 04            Report ID (4)
09 83            Usage (131)
09 81            Usage (129)
09 82            Usage (130)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 60            Input (0x60)
C0               End Collection
(25 bytes)
0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x04, 0x09, 0x83, 
0x09, 0x81, 0x09, 0x82, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 
0x95, 0x03, 0x81, 0x60, 0xc0, 

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&383a3a17&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xff00)
  Report Descriptor: 
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 10            Report ID (16)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
(34 bytes)
0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x10, 0x09, 
0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 
0x00, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 
0x01, 0x91, 0x00, 0xc0, 

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 01            Report ID (1)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 03            Report Count (3)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(69 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 
0x85, 0x01, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 
0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 
0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 
0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 
0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0, 

Device Found
  type: 8087 0a1e
  path: \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: 
  Product:      
  Release:      200
  Interface:    -1
  Usage (page): 0xc (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 0C            Usage  (12)
A1 01            Collection (Application)
85 08            Report ID (8)
09 C6            Usage (198)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(27 bytes)
0x05, 0x01, 0x09, 0x0c, 0xa1, 0x01, 0x85, 0x08, 0x09, 0xc6, 
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 
0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0, 

Device Found
  type: 044e 1212
  path: \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number: 
  Manufacturer: 
  Product:      
  Release:      0
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
85 07            Report ID (7)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
19 00            Usage Minimum (0)
29 75            Usage Maximum (117)
15 00            Logical Minimum (0)
25 75            Logical Maximum (117)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
C0               End Collection
(45 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x07, 0x05, 0x07, 
0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 
0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 
0x19, 0x00, 0x29, 0x75, 0x15, 0x00, 0x25, 0x75, 0x75, 0x08, 
0x95, 0x06, 0x81, 0x00, 0xc0, 

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&383a3a17&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0xff00)
  Report Descriptor: 
06 00 FF         Usage Page (65280)
09 02            Usage  (2)
A1 01            Collection (Application)
85 11            Report ID (17)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
(34 bytes)
0x06, 0x00, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x11, 0x09, 
0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 
0x00, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 
0x01, 0x91, 0x00, 0xc0, 

Device Found
  type: 8087 0a1e
  path: \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: 
  Product:      
  Release:      200
  Interface:    -1
  Usage (page): 0xd (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 0D            Usage  (13)
A1 01            Collection (Application)
09 0D            Usage  (13)
A1 02            Collection (Logical)
85 1C            Report ID (28)
09 81            Usage (129)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
09 CB            Usage (203)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 02            Feature (0x02)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
C0               End Collection
(50 bytes)
0x05, 0x01, 0x09, 0x0d, 0xa1, 0x01, 0x09, 0x0d, 0xa1, 0x02, 
0x85, 0x1c, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 
0x95, 0x01, 0x81, 0x02, 0x09, 0xcb, 0x15, 0x00, 0x25, 0x01, 
0x75, 0x01, 0x95, 0x01, 0xb1, 0x02, 0x75, 0x07, 0x95, 0x01, 
0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0, 

Device Found
  type: 044e 1212
  path: \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: 
  Product:      
  Release:      0
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 06            Report ID (6)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 00 FE         Logical Minimum (-512)
26 00 02         Logical Maximum (512)
75 10            Report Size (16)
95 02            Report Count (2)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(54 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 
0x85, 0x06, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 
0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 
0x16, 0x00, 0xfe, 0x26, 0x00, 0x02, 0x75, 0x10, 0x95, 0x02, 
0x81, 0x06, 0xc0, 0xc0, 

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x5 (0xd)
  Report Descriptor: 
05 0D            Usage Page (13)
09 05            Usage  (5)
A1 01            Collection (Application)
09 22            Usage  (34)
A1 02            Collection (Logical)
85 08            Report ID (8)
09 47            Usage (71)
09 42            Usage (66)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 02            Input (0x02)
09 51            Usage (81)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
75 03            Report Size (3)
95 01            Report Count (1)
81 02            Input (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
15 00            Logical Minimum (0)
26 AF 04         Logical Maximum (1199)
35 00            Physical Minimum (0)
46 E8 03         Physical Maximum (1000)
55 0E            Unit Exponent (14)
65 11            Unit (17)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 31            Usage (49)
15 00            Logical Minimum (0)
26 7B 02         Logical Maximum (635)
35 00            Physical Minimum (0)
46 12 02         Physical Maximum (530)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
C0               End Collection
05 0D            Usage Page (13)
09 56            Usage (86)
15 00            Logical Minimum (0)
27 FF FF 00 00   Logical Maximum (65535)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 54            Usage (84)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
05 09            Usage Page (9)
09 02            Usage (2)
09 03            Usage (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
81 02            Input (0x02)
85 09            Report ID (9)
05 0D            Usage Page (13)
09 55            Usage (85)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 01            Report Count (1)
B1 02            Feature (0x02)
85 0A            Report ID (10)
06 00 FF         Usage Page (65280)
09 C5            Usage (197)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
96 00 01         Report Count (256)
B1 02            Feature (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(204 bytes)
0x05, 0x0d, 0x09, 0x05, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02, 
0x85, 0x08, 0x09, 0x47, 0x09, 0x42, 0x15, 0x00, 0x25, 0x01, 
0x75, 0x01, 0x95, 0x02, 0x81, 0x02, 0x09, 0x51, 0x15, 0x00, 
0x25, 0x05, 0x75, 0x03, 0x95, 0x01, 0x81, 0x02, 0x75, 0x03, 
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x15, 0x00, 
0x26, 0xaf, 0x04, 0x35, 0x00, 0x46, 0xe8, 0x03, 0x55, 0x0e, 
0x65, 0x11, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x31, 
0x15, 0x00, 0x26, 0x7b, 0x02, 0x35, 0x00, 0x46, 0x12, 0x02, 
0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0xc0, 0x05, 0x0d, 0x09, 
0x56, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x35, 0x00, 
0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 
0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x54, 0x15, 0x00, 
0x25, 0x05, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x05, 0x09, 
0x09, 0x02, 0x09, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 
0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0x81, 0x02, 
0x85, 0x09, 0x05, 0x0d, 0x09, 0x55, 0x15, 0x00, 0x25, 0x05, 
0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 
0x01, 0x10, 0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0x85, 0x0a, 
0x06, 0x00, 0xff, 0x09, 0xc5, 0x15, 0x00, 0x26, 0xff, 0x00, 
0x75, 0x08, 0x96, 0x00, 0x01, 0xb1, 0x02, 0x75, 0x06, 0x95, 
0x01, 0x81, 0x03, 0xc0, 

Device Found
  type: 413c b06e
  path: \\?\hid#vid_413c&pid_b06e#c&37ff1248&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: 
  Product:      
  Release:      101
  Interface:    -1
  Usage (page): 0xda (0xffda)
  Report Descriptor: 
06 DA FF         Usage Page (65498)
09 DA            Usage  (218)
A1 01            Collection (Application)
09 DA            Usage (218)
19 01            Usage Minimum (1)
29 0E            Usage Maximum (14)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 02            Report Count (2)
81 02            Input (0x02)
05 DA            Usage Page (218)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
91 02            Output (0x02)
C0               End Collection
(40 bytes)
0x06, 0xda, 0xff, 0x09, 0xda, 0xa1, 0x01, 0x09, 0xda, 0x19, 
0x01, 0x29, 0x0e, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 
0x02, 0x81, 0x02, 0x05, 0xda, 0x19, 0x01, 0x29, 0x05, 0x15, 
0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x91, 0x02, 0xc0, 

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col01#f&39e6f119&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x1 (0xc)
  Report Descriptor: 
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 01            Report ID (1)
09 E9            Usage (233)
09 EA            Usage (234)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 06            Input (0x06)
85 02            Report ID (2)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
85 05            Report ID (5)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 07            Report ID (7)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 04            Report ID (4)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 24            Report Count (36)
91 02            Output (0x02)
85 06            Report ID (6)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 24            Report Count (36)
91 02            Output (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(99 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x01, 0x09, 0xe9, 
0x09, 0xea, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 
0x81, 0x06, 0x85, 0x02, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 
0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x85, 0x05, 0x09, 0x00, 
0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 
0x85, 0x07, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 
0x95, 0x20, 0x81, 0x02, 0x85, 0x04, 0x09, 0x00, 0x15, 0x00, 
0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0x85, 0x06, 
0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 
0x91, 0x02, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0xc0, 

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: 
  Product:      
  Release:      0
  Interface:    -1
  Usage (page): 0x1 (0xc)
  Report Descriptor: 
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 02            Report ID (2)
09 E9            Usage (233)
09 EA            Usage (234)
0A 21 02         Usage (545)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(32 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x02, 0x09, 0xe9, 
0x09, 0xea, 0x0a, 0x21, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 
0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 
0x03, 0xc0, 

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col02#f&39e6f119&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x5 (0xb)
  Report Descriptor: 
05 0B            Usage Page (11)
09 05            Usage  (5)
A1 01            Collection (Application)
85 08            Report ID (8)
09 2F            Usage (47)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
09 20            Usage (32)
09 21            Usage (33)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 22            Input (0x22)
85 09            Report ID (9)
05 08            Usage Page (8)
09 09            Usage (9)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 17            Report ID (23)
09 17            Usage (23)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 18            Report ID (24)
09 18            Usage (24)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 1E            Report ID (30)
09 1E            Usage (30)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 20            Report ID (32)
09 20            Usage (32)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 2A            Report ID (42)
09 2A            Usage (42)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(163 bytes)
0x05, 0x0b, 0x09, 0x05, 0xa1, 0x01, 0x85, 0x08, 0x09, 0x2f, 
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 
0x09, 0x20, 0x09, 0x21, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 
0x95, 0x02, 0x81, 0x22, 0x85, 0x09, 0x05, 0x08, 0x09, 0x09, 
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 
0x85, 0x17, 0x09, 0x17, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 
0x95, 0x01, 0x91, 0x22, 0x85, 0x18, 0x09, 0x18, 0x15, 0x00, 
0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x1e, 
0x09, 0x1e, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 
0x91, 0x22, 0x85, 0x20, 0x09, 0x20, 0x15, 0x00, 0x25, 0x01, 
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x2a, 0x09, 0x2a, 
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 
0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 
0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 
0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 
0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 
0x91, 0x03, 0xc0, 

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: 
  Product:      
  Release:      0
  Interface:    -1
  Usage (page): 0x80 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 03            Report ID (3)
09 81            Usage (129)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(27 bytes)
0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x81, 
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 
0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0, 

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col03#f&39e6f119&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x3 (0xffa0)
  Report Descriptor: 
06 A0 FF         Usage Page (65440)
09 03            Usage  (3)
A1 01            Collection (Application)
85 14            Report ID (20)
09 B1            Usage (177)
09 B2            Usage (178)
09 B5            Usage (181)
09 B7            Usage (183)
09 B3            Usage (179)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
81 06            Input (0x06)
85 1F            Report ID (31)
09 9C            Usage (156)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
85 03            Report ID (3)
09 30            Usage (48)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 15            Report ID (21)
09 8C            Usage (140)
15 00            Logical Minimum (0)
27 FF FF 00 00   Logical Maximum (65535)
75 10            Report Size (16)
95 01            Report Count (1)
81 22            Input (0x22)
85 19            Report ID (25)
09 8D            Usage (141)
09 8F            Usage (143)
09 9E            Usage (158)
09 DC            Usage (220)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 04            Report Count (4)
91 22            Output (0x22)
09 D2            Usage (210)
09 D9            Usage (217)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
91 06            Output (0x06)
85 1A            Report ID (26)
09 B5            Usage (181)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 03            Report ID (3)
09 30            Usage (48)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
91 02            Output (0x02)
85 1B            Report ID (27)
09 CF            Usage (207)
09 B5            Usage (181)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
B1 22            Feature (0x22)
09 DE            Usage (222)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 23            Feature (0x23)
09 D8            Usage (216)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 22            Feature (0x22)
75 04            Report Size (4)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
09 09            Usage (9)
09 17            Usage (23)
09 18            Usage (24)
09 1E            Usage (30)
09 20            Usage (32)
09 2A            Usage (42)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 06            Report Count (6)
B1 22            Feature (0x22)
75 03            Report Size (3)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 02            Report Size (2)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 02            Report Size (2)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
(235 bytes)
0x06, 0xa0, 0xff, 0x09, 0x03, 0xa1, 0x01, 0x85, 0x14, 0x09, 
0xb1, 0x09, 0xb2, 0x09, 0xb5, 0x09, 0xb7, 0x09, 0xb3, 0x15, 
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x81, 0x06, 0x85, 
0x1f, 0x09, 0x9c, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 
0x01, 0x81, 0x06, 0x85, 0x03, 0x09, 0x30, 0x15, 0x00, 0x25, 
0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x15, 0x09, 
0x8c, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x75, 0x10, 
0x95, 0x01, 0x81, 0x22, 0x85, 0x19, 0x09, 0x8d, 0x09, 0x8f, 
0x09, 0x9e, 0x09, 0xdc, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 
0x95, 0x04, 0x91, 0x22, 0x09, 0xd2, 0x09, 0xd9, 0x15, 0x00, 
0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x91, 0x06, 0x85, 0x1a, 
0x09, 0xb5, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 
0x91, 0x22, 0x85, 0x03, 0x09, 0x30, 0x15, 0x00, 0x25, 0x01, 
0x75, 0x08, 0x95, 0x20, 0x91, 0x02, 0x85, 0x1b, 0x09, 0xcf, 
0x09, 0xb5, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 
0xb1, 0x22, 0x09, 0xde, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 
0x95, 0x01, 0xb1, 0x23, 0x09, 0xd8, 0x15, 0x00, 0x25, 0x01, 
0x75, 0x01, 0x95, 0x01, 0xb1, 0x22, 0x75, 0x04, 0x95, 0x01, 
0xb1, 0x03, 0x09, 0x09, 0x09, 0x17, 0x09, 0x18, 0x09, 0x1e, 
0x09, 0x20, 0x09, 0x2a, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 
0x95, 0x06, 0xb1, 0x22, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03, 
0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x75, 0x02, 0x95, 0x01, 
0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x02, 
0x95, 0x01, 0xb1, 0x03, 0xc0, 

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x1 (0xff01)
  Report Descriptor: 
06 01 FF         Usage Page (65281)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
09 01            Usage (1)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 1B            Report Count (27)
81 02            Input (0x02)
85 04            Report ID (4)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 1B            Report Count (27)
81 02            Input (0x02)
85 06            Report ID (6)
09 04            Usage (4)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 07            Report Count (7)
81 02            Input (0x02)
85 05            Report ID (5)
09 03            Usage (3)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 07            Report Count (7)
B1 02            Feature (0x02)
C0               End Collection
(80 bytes)
0x06, 0x01, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x09, 
0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff, 
0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 
0x95, 0x1b, 0x81, 0x02, 0x85, 0x04, 0x09, 0x02, 0x15, 0x00, 
0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85, 
0x06, 0x09, 0x04, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 
0x95, 0x07, 0x81, 0x02, 0x85, 0x05, 0x09, 0x03, 0x15, 0x00, 
0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0xb1, 0x02, 0xc0, 

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_00#7&1c54b96&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number: 
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    0
  Usage (page): 0x6 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
19 00            Usage Minimum (0)
29 A4            Usage Maximum (164)
15 00            Logical Minimum (0)
26 A4 00         Logical Maximum (164)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
91 02            Output (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(66 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 
0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 
0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 
0x29, 0xa4, 0x15, 0x00, 0x26, 0xa4, 0x00, 0x75, 0x08, 0x95, 
0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15, 
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75, 
0x03, 0x95, 0x01, 0x91, 0x03, 0xc0, 

Device Found
  type: 413c 2107
  path: \\?\hid#vid_413c&pid_2107#e&1de7f0c0&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number: 
  Manufacturer: DELL
  Product:      Dell USB Entry Keyboard
  Release:      178
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
19 00            Usage Minimum (0)
29 FF            Usage Maximum (255)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
91 02            Output (0x02)
Report Size (-8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 2F            Report Size (47)
95 01            Report Count (1)
81 03            Input (0x03) Padding
Report Size (-41)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 01            Report Size (1)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 05            Report Size (5)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(80 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 
0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 
0x81, 0x02, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 
0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 
0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 
0x03, 0x91, 0x02, 0x95, 0x01, 0x81, 0x03, 0x75, 0x2f, 0x95, 
0x01, 0x81, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x01, 0x95, 
0x01, 0x81, 0x03, 0x75, 0x05, 0x95, 0x01, 0x91, 0x03, 0xc0, 

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x1 (0xff02)
  Report Descriptor: 
06 02 FF         Usage Page (65282)
09 01            Usage  (1)
A1 01            Collection (Application)
85 07            Report ID (7)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 86            Report Count (134)
B1 02            Feature (0x02)
C0               End Collection
(35 bytes)
0x06, 0x02, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x07, 0x09, 
0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff, 
0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 
0x95, 0x86, 0xb1, 0x02, 0xc0, 

Device Found
  type: 046d c077
  path: \\?\hid#vid_046d&pid_c077#e&fde55df&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: Logitech
  Product:      USB Optical Mouse
  Release:      7200
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 03            Report Count (3)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(52 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 
0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 
0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 
0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38, 
0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06, 
0xc0, 0xc0, 

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0xe (0xd)
  Report Descriptor: 
05 0D            Usage Page (13)
09 0E            Usage  (14)
A1 01            Collection (Application)
09 22            Usage  (34)
A1 02            Collection (Logical)
85 0B            Report ID (11)
09 52            Usage (82)
15 00            Logical Minimum (0)
25 0A            Logical Maximum (10)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 01            Report Count (1)
B1 02            Feature (0x02)
C0               End Collection
09 22            Usage  (34)
A1 00            Collection (Physical)
85 0C            Report ID (12)
09 57            Usage (87)
09 58            Usage (88)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
B1 02            Feature (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
C0               End Collection
(71 bytes)
0x05, 0x0d, 0x09, 0x0e, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02, 
0x85, 0x0b, 0x09, 0x52, 0x15, 0x00, 0x25, 0x0a, 0x35, 0x00, 
0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 
0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0xc0, 0x09, 0x22, 0xa1, 
0x00, 0x85, 0x0c, 0x09, 0x57, 0x09, 0x58, 0x15, 0x00, 0x25, 
0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 
0x00, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0xb1, 0x03, 0xc0, 
0xc0, 

Device Found
  type: 413c b06f
  path: \\?\hid#vid_413c&pid_b06f#d&3624b04c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: 
  Product:      
  Release:      101
  Interface:    -1
  Usage (page): 0xda (0xffda)
  Report Descriptor: 
06 DA FF         Usage Page (65498)
09 DA            Usage  (218)
A1 01            Collection (Application)
09 DA            Usage (218)
19 01            Usage Minimum (1)
29 0E            Usage Maximum (14)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 02            Report Count (2)
81 02            Input (0x02)
05 DA            Usage Page (218)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
91 02            Output (0x02)
C0               End Collection
(40 bytes)
0x06, 0xda, 0xff, 0x09, 0xda, 0xa1, 0x01, 0x09, 0xda, 0x19, 
0x01, 0x29, 0x0e, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 
0x02, 0x81, 0x02, 0x05, 0xda, 0x19, 0x01, 0x29, 0x05, 0x15, 
0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x91, 0x02, 0xc0, 

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number: 
  Manufacturer: 
  Product:      
  Release:      0
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
85 01            Report ID (1)
05 07            Usage Page (7)
09 69            Usage (105)
09 6A            Usage (106)
09 6B            Usage (107)
09 6C            Usage (108)
09 E3            Usage (227)
09 4C            Usage (76)
09 E2            Usage (226)
09 E0            Usage (224)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
C0               End Collection
(37 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x01, 0x05, 0x07, 
0x09, 0x69, 0x09, 0x6a, 0x09, 0x6b, 0x09, 0x6c, 0x09, 0xe3, 
0x09, 0x4c, 0x09, 0xe2, 0x09, 0xe0, 0x15, 0x00, 0x25, 0x01, 
0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0xc0, 

unable to open device

Latest test shows no more txt files. <details> <summary> click to expand for the debug log using hidtest </summary> ``` hidapi test/example tool. Compiled with hidapi version 0.11.0, runtime version 0.11.0. Compile-time version matches runtime version of hidapi. Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&383a3a17&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 02 Report ID (2) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 10 Usage Maximum (16) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 10 Report Count (16) 81 02 Input (0x02) 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 01 F8 Logical Minimum (-2047) 26 FF 07 Logical Maximum (2047) 75 0C Report Size (12) 95 02 Report Count (2) 81 06 Input (0x06) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection (75 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07, 0x75, 0x0c, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&383a3a17&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 19 01 Usage Minimum (1) 2A 8C 02 Usage Maximum (652) 15 01 Logical Minimum (1) 26 8C 02 Logical Maximum (652) 75 10 Report Size (16) 95 02 Report Count (2) 81 00 Input (0x00) C0 End Collection (25 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x01, 0x2a, 0x8c, 0x02, 0x15, 0x01, 0x26, 0x8c, 0x02, 0x75, 0x10, 0x95, 0x02, 0x81, 0x00, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&383a3a17&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x80 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 04 Report ID (4) 09 83 Usage (131) 09 81 Usage (129) 09 82 Usage (130) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 60 Input (0x60) C0 End Collection (25 bytes) 0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x04, 0x09, 0x83, 0x09, 0x81, 0x09, 0x82, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x60, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&383a3a17&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 10 Report ID (16) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection (34 bytes) 0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x10, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x00, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x00, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 01 Report ID (1) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 03 Report Count (3) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection (69 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x01, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 8087 0a1e path: \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 200 Interface: -1 Usage (page): 0xc (0x1) Report Descriptor: 05 01 Usage Page (1) 09 0C Usage (12) A1 01 Collection (Application) 85 08 Report ID (8) 09 C6 Usage (198) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (27 bytes) 0x05, 0x01, 0x09, 0x0c, 0xa1, 0x01, 0x85, 0x08, 0x09, 0xc6, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 044e 1212 path: \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 85 07 Report ID (7) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 75 Usage Maximum (117) 15 00 Logical Minimum (0) 25 75 Logical Maximum (117) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) C0 End Collection (45 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x07, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 0x29, 0x75, 0x15, 0x00, 0x25, 0x75, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&383a3a17&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 02 Usage (2) A1 01 Collection (Application) 85 11 Report ID (17) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection (34 bytes) 0x06, 0x00, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x11, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x00, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x00, 0xc0, Device Found type: 8087 0a1e path: \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 200 Interface: -1 Usage (page): 0xd (0x1) Report Descriptor: 05 01 Usage Page (1) 09 0D Usage (13) A1 01 Collection (Application) 09 0D Usage (13) A1 02 Collection (Logical) 85 1C Report ID (28) 09 81 Usage (129) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 09 CB Usage (203) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 02 Feature (0x02) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection (50 bytes) 0x05, 0x01, 0x09, 0x0d, 0xa1, 0x01, 0x09, 0x0d, 0xa1, 0x02, 0x85, 0x1c, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0xcb, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x02, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0, Device Found type: 044e 1212 path: \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 06 Report ID (6) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 00 FE Logical Minimum (-512) 26 00 02 Logical Maximum (512) 75 10 Report Size (16) 95 02 Report Count (2) 81 06 Input (0x06) C0 End Collection C0 End Collection (54 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x06, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x00, 0xfe, 0x26, 0x00, 0x02, 0x75, 0x10, 0x95, 0x02, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x5 (0xd) Report Descriptor: 05 0D Usage Page (13) 09 05 Usage (5) A1 01 Collection (Application) 09 22 Usage (34) A1 02 Collection (Logical) 85 08 Report ID (8) 09 47 Usage (71) 09 42 Usage (66) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 02 Input (0x02) 09 51 Usage (81) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 75 03 Report Size (3) 95 01 Report Count (1) 81 02 Input (0x02) 75 03 Report Size (3) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 15 00 Logical Minimum (0) 26 AF 04 Logical Maximum (1199) 35 00 Physical Minimum (0) 46 E8 03 Physical Maximum (1000) 55 0E Unit Exponent (14) 65 11 Unit (17) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 31 Usage (49) 15 00 Logical Minimum (0) 26 7B 02 Logical Maximum (635) 35 00 Physical Minimum (0) 46 12 02 Physical Maximum (530) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) C0 End Collection 05 0D Usage Page (13) 09 56 Usage (86) 15 00 Logical Minimum (0) 27 FF FF 00 00 Logical Maximum (65535) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 54 Usage (84) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) 05 09 Usage Page (9) 09 02 Usage (2) 09 03 Usage (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) 81 02 Input (0x02) 85 09 Report ID (9) 05 0D Usage Page (13) 09 55 Usage (85) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 01 Report Count (1) B1 02 Feature (0x02) 85 0A Report ID (10) 06 00 FF Usage Page (65280) 09 C5 Usage (197) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 96 00 01 Report Count (256) B1 02 Feature (0x02) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (204 bytes) 0x05, 0x0d, 0x09, 0x05, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02, 0x85, 0x08, 0x09, 0x47, 0x09, 0x42, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x02, 0x09, 0x51, 0x15, 0x00, 0x25, 0x05, 0x75, 0x03, 0x95, 0x01, 0x81, 0x02, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x15, 0x00, 0x26, 0xaf, 0x04, 0x35, 0x00, 0x46, 0xe8, 0x03, 0x55, 0x0e, 0x65, 0x11, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x31, 0x15, 0x00, 0x26, 0x7b, 0x02, 0x35, 0x00, 0x46, 0x12, 0x02, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0xc0, 0x05, 0x0d, 0x09, 0x56, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x54, 0x15, 0x00, 0x25, 0x05, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x05, 0x09, 0x09, 0x02, 0x09, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0x81, 0x02, 0x85, 0x09, 0x05, 0x0d, 0x09, 0x55, 0x15, 0x00, 0x25, 0x05, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0x85, 0x0a, 0x06, 0x00, 0xff, 0x09, 0xc5, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x96, 0x00, 0x01, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 413c b06e path: \\?\hid#vid_413c&pid_b06e#c&37ff1248&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 101 Interface: -1 Usage (page): 0xda (0xffda) Report Descriptor: 06 DA FF Usage Page (65498) 09 DA Usage (218) A1 01 Collection (Application) 09 DA Usage (218) 19 01 Usage Minimum (1) 29 0E Usage Maximum (14) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 02 Report Count (2) 81 02 Input (0x02) 05 DA Usage Page (218) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 91 02 Output (0x02) C0 End Collection (40 bytes) 0x06, 0xda, 0xff, 0x09, 0xda, 0xa1, 0x01, 0x09, 0xda, 0x19, 0x01, 0x29, 0x0e, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x02, 0x81, 0x02, 0x05, 0xda, 0x19, 0x01, 0x29, 0x05, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x91, 0x02, 0xc0, Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col01#f&39e6f119&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 01 Report ID (1) 09 E9 Usage (233) 09 EA Usage (234) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 06 Input (0x06) 85 02 Report ID (2) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 85 05 Report ID (5) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 07 Report ID (7) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 04 Report ID (4) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 24 Report Count (36) 91 02 Output (0x02) 85 06 Report ID (6) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 24 Report Count (36) 91 02 Output (0x02) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (99 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x01, 0x09, 0xe9, 0x09, 0xea, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x06, 0x85, 0x02, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x85, 0x05, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x07, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x04, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0x85, 0x06, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 02 Report ID (2) 09 E9 Usage (233) 09 EA Usage (234) 0A 21 02 Usage (545) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (32 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x02, 0x09, 0xe9, 0x09, 0xea, 0x0a, 0x21, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col02#f&39e6f119&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x5 (0xb) Report Descriptor: 05 0B Usage Page (11) 09 05 Usage (5) A1 01 Collection (Application) 85 08 Report ID (8) 09 2F Usage (47) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 09 20 Usage (32) 09 21 Usage (33) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 22 Input (0x22) 85 09 Report ID (9) 05 08 Usage Page (8) 09 09 Usage (9) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 17 Report ID (23) 09 17 Usage (23) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 18 Report ID (24) 09 18 Usage (24) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 1E Report ID (30) 09 1E Usage (30) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 20 Report ID (32) 09 20 Usage (32) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 2A Report ID (42) 09 2A Usage (42) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (163 bytes) 0x05, 0x0b, 0x09, 0x05, 0xa1, 0x01, 0x85, 0x08, 0x09, 0x2f, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 0x09, 0x20, 0x09, 0x21, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x22, 0x85, 0x09, 0x05, 0x08, 0x09, 0x09, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x17, 0x09, 0x17, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x18, 0x09, 0x18, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x1e, 0x09, 0x1e, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x20, 0x09, 0x20, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x2a, 0x09, 0x2a, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x80 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 03 Report ID (3) 09 81 Usage (129) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (27 bytes) 0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col03#f&39e6f119&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x3 (0xffa0) Report Descriptor: 06 A0 FF Usage Page (65440) 09 03 Usage (3) A1 01 Collection (Application) 85 14 Report ID (20) 09 B1 Usage (177) 09 B2 Usage (178) 09 B5 Usage (181) 09 B7 Usage (183) 09 B3 Usage (179) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 81 06 Input (0x06) 85 1F Report ID (31) 09 9C Usage (156) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 85 03 Report ID (3) 09 30 Usage (48) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 15 Report ID (21) 09 8C Usage (140) 15 00 Logical Minimum (0) 27 FF FF 00 00 Logical Maximum (65535) 75 10 Report Size (16) 95 01 Report Count (1) 81 22 Input (0x22) 85 19 Report ID (25) 09 8D Usage (141) 09 8F Usage (143) 09 9E Usage (158) 09 DC Usage (220) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 04 Report Count (4) 91 22 Output (0x22) 09 D2 Usage (210) 09 D9 Usage (217) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 91 06 Output (0x06) 85 1A Report ID (26) 09 B5 Usage (181) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 03 Report ID (3) 09 30 Usage (48) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 91 02 Output (0x02) 85 1B Report ID (27) 09 CF Usage (207) 09 B5 Usage (181) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) B1 22 Feature (0x22) 09 DE Usage (222) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 23 Feature (0x23) 09 D8 Usage (216) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 22 Feature (0x22) 75 04 Report Size (4) 95 01 Report Count (1) B1 03 Feature (0x03) Padding 09 09 Usage (9) 09 17 Usage (23) 09 18 Usage (24) 09 1E Usage (30) 09 20 Usage (32) 09 2A Usage (42) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 06 Report Count (6) B1 22 Feature (0x22) 75 03 Report Size (3) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 02 Report Size (2) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 02 Report Size (2) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection (235 bytes) 0x06, 0xa0, 0xff, 0x09, 0x03, 0xa1, 0x01, 0x85, 0x14, 0x09, 0xb1, 0x09, 0xb2, 0x09, 0xb5, 0x09, 0xb7, 0x09, 0xb3, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x81, 0x06, 0x85, 0x1f, 0x09, 0x9c, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 0x85, 0x03, 0x09, 0x30, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x15, 0x09, 0x8c, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x75, 0x10, 0x95, 0x01, 0x81, 0x22, 0x85, 0x19, 0x09, 0x8d, 0x09, 0x8f, 0x09, 0x9e, 0x09, 0xdc, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x04, 0x91, 0x22, 0x09, 0xd2, 0x09, 0xd9, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x91, 0x06, 0x85, 0x1a, 0x09, 0xb5, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x03, 0x09, 0x30, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x91, 0x02, 0x85, 0x1b, 0x09, 0xcf, 0x09, 0xb5, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0xb1, 0x22, 0x09, 0xde, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x23, 0x09, 0xd8, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x22, 0x75, 0x04, 0x95, 0x01, 0xb1, 0x03, 0x09, 0x09, 0x09, 0x17, 0x09, 0x18, 0x09, 0x1e, 0x09, 0x20, 0x09, 0x2a, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x06, 0xb1, 0x22, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x75, 0x02, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x02, 0x95, 0x01, 0xb1, 0x03, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x1 (0xff01) Report Descriptor: 06 01 FF Usage Page (65281) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 09 01 Usage (1) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 1B Report Count (27) 81 02 Input (0x02) 85 04 Report ID (4) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 1B Report Count (27) 81 02 Input (0x02) 85 06 Report ID (6) 09 04 Usage (4) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 07 Report Count (7) 81 02 Input (0x02) 85 05 Report ID (5) 09 03 Usage (3) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 07 Report Count (7) B1 02 Feature (0x02) C0 End Collection (80 bytes) 0x06, 0x01, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85, 0x04, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85, 0x06, 0x09, 0x04, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0x81, 0x02, 0x85, 0x05, 0x09, 0x03, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0xb1, 0x02, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_00#7&1c54b96&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 0 Usage (page): 0x6 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 A4 Usage Maximum (164) 15 00 Logical Minimum (0) 26 A4 00 Logical Maximum (164) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 91 02 Output (0x02) 75 03 Report Size (3) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (66 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 0x29, 0xa4, 0x15, 0x00, 0x26, 0xa4, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75, 0x03, 0x95, 0x01, 0x91, 0x03, 0xc0, Device Found type: 413c 2107 path: \\?\hid#vid_413c&pid_2107#e&1de7f0c0&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: DELL Product: Dell USB Entry Keyboard Release: 178 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 19 00 Usage Minimum (0) 29 FF Usage Maximum (255) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 91 02 Output (0x02) Report Size (-8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 2F Report Size (47) 95 01 Report Count (1) 81 03 Input (0x03) Padding Report Size (-41) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 01 Report Size (1) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 05 Report Size (5) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (80 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x95, 0x01, 0x81, 0x03, 0x75, 0x2f, 0x95, 0x01, 0x81, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x01, 0x95, 0x01, 0x81, 0x03, 0x75, 0x05, 0x95, 0x01, 0x91, 0x03, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x1 (0xff02) Report Descriptor: 06 02 FF Usage Page (65282) 09 01 Usage (1) A1 01 Collection (Application) 85 07 Report ID (7) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 86 Report Count (134) B1 02 Feature (0x02) C0 End Collection (35 bytes) 0x06, 0x02, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x07, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x86, 0xb1, 0x02, 0xc0, Device Found type: 046d c077 path: \\?\hid#vid_046d&pid_c077#e&fde55df&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Optical Mouse Release: 7200 Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 03 Report Count (3) 81 06 Input (0x06) C0 End Collection C0 End Collection (52 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0xe (0xd) Report Descriptor: 05 0D Usage Page (13) 09 0E Usage (14) A1 01 Collection (Application) 09 22 Usage (34) A1 02 Collection (Logical) 85 0B Report ID (11) 09 52 Usage (82) 15 00 Logical Minimum (0) 25 0A Logical Maximum (10) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 01 Report Count (1) B1 02 Feature (0x02) C0 End Collection 09 22 Usage (34) A1 00 Collection (Physical) 85 0C Report ID (12) 09 57 Usage (87) 09 58 Usage (88) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) B1 02 Feature (0x02) 75 06 Report Size (6) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection (71 bytes) 0x05, 0x0d, 0x09, 0x0e, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02, 0x85, 0x0b, 0x09, 0x52, 0x15, 0x00, 0x25, 0x0a, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0xc0, 0x09, 0x22, 0xa1, 0x00, 0x85, 0x0c, 0x09, 0x57, 0x09, 0x58, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0, Device Found type: 413c b06f path: \\?\hid#vid_413c&pid_b06f#d&3624b04c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 101 Interface: -1 Usage (page): 0xda (0xffda) Report Descriptor: 06 DA FF Usage Page (65498) 09 DA Usage (218) A1 01 Collection (Application) 09 DA Usage (218) 19 01 Usage Minimum (1) 29 0E Usage Maximum (14) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 02 Report Count (2) 81 02 Input (0x02) 05 DA Usage Page (218) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 91 02 Output (0x02) C0 End Collection (40 bytes) 0x06, 0xda, 0xff, 0x09, 0xda, 0xa1, 0x01, 0x09, 0xda, 0x19, 0x01, 0x29, 0x0e, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x02, 0x81, 0x02, 0x05, 0xda, 0x19, 0x01, 0x29, 0x05, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x91, 0x02, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 85 01 Report ID (1) 05 07 Usage Page (7) 09 69 Usage (105) 09 6A Usage (106) 09 6B Usage (107) 09 6C Usage (108) 09 E3 Usage (227) 09 4C Usage (76) 09 E2 Usage (226) 09 E0 Usage (224) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) C0 End Collection (37 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x01, 0x05, 0x07, 0x09, 0x69, 0x09, 0x6a, 0x09, 0x6b, 0x09, 0x6c, 0x09, 0xe3, 0x09, 0x4c, 0x09, 0xe2, 0x09, 0xe0, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0xc0, unable to open device ``` </details>
mcuee commented 2021-07-12 00:10:58 -05:00 (Migrated from github.com)

The debug log is a bit strange for the Dell keyboard.

Device Found
  type: 413c 2107
  path: \\?\hid#vid_413c&pid_2107#e&1de7f0c0&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number: 
  Manufacturer: DELL
  Product:      Dell USB Entry Keyboard
  Release:      178
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
19 00            Usage Minimum (0)
29 FF            Usage Maximum (255)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
91 02            Output (0x02)
Report Size (-8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 2F            Report Size (47)
95 01            Report Count (1)
81 03            Input (0x03) Padding
Report Size (-41)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 01            Report Size (1)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 05            Report Size (5)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(80 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 
0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 
0x81, 0x02, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 
0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 
0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 
0x03, 0x91, 0x02, 0x95, 0x01, 0x81, 0x03, 0x75, 0x2f, 0x95, 
0x01, 0x81, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x01, 0x95, 
0x01, 0x81, 0x03, 0x75, 0x05, 0x95, 0x01, 0x91, 0x03, 0xc0, 

But the https://eleccelerator.com/usbdescreqparser output looks better.

0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x06,        // Usage (Keyboard)
0xA1, 0x01,        // Collection (Application)
0x05, 0x07,        //   Usage Page (Kbrd/Keypad)
0x19, 0xE0,        //   Usage Minimum (0xE0)
0x29, 0xE7,        //   Usage Maximum (0xE7)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0x01,        //   Logical Maximum (1)
0x75, 0x01,        //   Report Size (1)
0x95, 0x08,        //   Report Count (8)
0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x19, 0x00,        //   Usage Minimum (0x00)
0x29, 0xFF,        //   Usage Maximum (0xFF)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x75, 0x08,        //   Report Size (8)
0x95, 0x06,        //   Report Count (6)
0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x08,        //   Usage Page (LEDs)
0x19, 0x01,        //   Usage Minimum (Num Lock)
0x29, 0x03,        //   Usage Maximum (Scroll Lock)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0x01,        //   Logical Maximum (1)
0x75, 0x01,        //   Report Size (1)
0x95, 0x03,        //   Report Count (3)
0x91, 0x02,        //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x95, 0x01,        //   Report Count (1)
0x81, 0x03,        //   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x75, 0x2F,        //   Report Size (47)
0x95, 0x01,        //   Report Count (1)
0x81, 0x03,        //   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x01,        //   Report Count (1)
0x81, 0x03,        //   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x75, 0x01,        //   Report Size (1)
0x95, 0x01,        //   Report Count (1)
0x81, 0x03,        //   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x75, 0x05,        //   Report Size (5)
0x95, 0x01,        //   Report Count (1)
0x91, 0x03,        //   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              // End Collection

// 80 bytes

The debug log is a bit strange for the Dell keyboard. ``` Device Found type: 413c 2107 path: \\?\hid#vid_413c&pid_2107#e&1de7f0c0&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: DELL Product: Dell USB Entry Keyboard Release: 178 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 19 00 Usage Minimum (0) 29 FF Usage Maximum (255) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 91 02 Output (0x02) Report Size (-8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 2F Report Size (47) 95 01 Report Count (1) 81 03 Input (0x03) Padding Report Size (-41) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 01 Report Size (1) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 05 Report Size (5) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (80 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x95, 0x01, 0x81, 0x03, 0x75, 0x2f, 0x95, 0x01, 0x81, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x01, 0x95, 0x01, 0x81, 0x03, 0x75, 0x05, 0x95, 0x01, 0x91, 0x03, 0xc0, ``` But the https://eleccelerator.com/usbdescreqparser output looks better. ``` 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x06, // Usage (Keyboard) 0xA1, 0x01, // Collection (Application) 0x05, 0x07, // Usage Page (Kbrd/Keypad) 0x19, 0xE0, // Usage Minimum (0xE0) 0x29, 0xE7, // Usage Maximum (0xE7) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x75, 0x01, // Report Size (1) 0x95, 0x08, // Report Count (8) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x19, 0x00, // Usage Minimum (0x00) 0x29, 0xFF, // Usage Maximum (0xFF) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x06, // Report Count (6) 0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x05, 0x08, // Usage Page (LEDs) 0x19, 0x01, // Usage Minimum (Num Lock) 0x29, 0x03, // Usage Maximum (Scroll Lock) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x75, 0x01, // Report Size (1) 0x95, 0x03, // Report Count (3) 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x95, 0x01, // Report Count (1) 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x75, 0x2F, // Report Size (47) 0x95, 0x01, // Report Count (1) 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x95, 0x01, // Report Count (1) 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x75, 0x01, // Report Size (1) 0x95, 0x01, // Report Count (1) 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x75, 0x05, // Report Size (5) 0x95, 0x01, // Report Count (1) 0x91, 0x03, // Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection // 80 bytes ```
JoergAtGithub commented 2021-07-12 00:55:11 -05:00 (Migrated from github.com)

Could you provide the original Report Descriptor of the Delll device as well. Read on another platform - BTW this PR should now work with MacOS as well, because I merged the code from #303 in.

Could you provide the original Report Descriptor of the Delll device as well. Read on another platform - BTW this PR should now work with MacOS as well, because I merged the code from #303 in.
mcuee commented 2021-07-12 01:38:45 -05:00 (Migrated from github.com)

Yes I will get the Report Descriptor from macOS or Linux.

Yes I will get the Report Descriptor from macOS or Linux.
mcuee commented 2021-07-12 01:57:35 -05:00 (Migrated from github.com)

HIDSharp Output for the Dell USB Keyboard.

\\?\hid#vid_413c&pid_2107#e&1de7f0c0&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...


HIDSharp Output for the Dell USB Keyboard. ``` \\?\hid#vid_413c&pid_2107#e&1de7f0c0&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... ```
mcuee commented 2021-07-12 04:12:35 -05:00 (Migrated from github.com)

I use a brutal force method to get the Windows HID descriptor by changing the Windows HID driver to WinUSB. Then I use libusb xusb test to extract the HID report descriptor. I believe this value will be correct.
https://github.com/libusb/libusb/blob/master/examples/xusb.c#L616

printf("\nReading HID Report Descriptors:\n");
	descriptor_size = libusb_control_transfer(handle, LIBUSB_ENDPOINT_IN|LIBUSB_REQUEST_TYPE_STANDARD|LIBUSB_RECIPIENT_INTERFACE,
		LIBUSB_REQUEST_GET_DESCRIPTOR, LIBUSB_DT_REPORT<<8, 0, hid_report_descriptor, sizeof(hid_report_descriptor), 1000);

Minor hack to use the "-s"

diff --git a/examples/xusb.c b/examples/xusb.c
index bf328fe..77ec516 100644
--- a/examples/xusb.c
+++ b/examples/xusb.c
@@ -1044,15 +1044,19 @@ int main(int argc, char** argv)
                                        test_mode = USE_PS3;
                                        break;
                                case 's':
-                                       // Microsoft Sidewinder Precision Pro Joystick - 1 HID interface
-                                       VID = 0x045E;
-                                       PID = 0x0008;
+                                       if (!VID && !PID) {
+                                               // Microsoft Sidewinder Precision Pro Joystick - 1 HID interface
+                                               VID = 0x045E;
+                                               PID = 0x0008;
+                                       }
                                        test_mode = USE_HID;
                                        break;
                                case 'x':

Now this is what I get.

Reading string descriptors:
   String (0x01): "DELL"
   String (0x02): "Dell USB Entry Keyboard"

Reading HID Report Descriptors:

  00000000  05 01 09 06 a1 01 05 07 19 e0 29 e7 15 00 25 01  ..........)...%.
  00000010  75 01 95 08 81 02 95 01 75 08 81 01 95 03 75 01  u.......u.....u.
  00000020  05 08 19 01 29 03 91 02 95 05 75 01 91 01 95 06  ....).....u.....
  00000030  75 08 15 00 26 ff 00 05 07 19 00 2a ff 00 81 00  u...&......*....
  00000040  c0                                               .

Skipping Feature Report readout (None detected)

Reading Input Report (length 8)...

  00000000  00 00 00 00 00 00 00 00                          ........

Testing interrupt read using endpoint 81...

  00000000  00 00 00 00 00 00 00 00

https://eleccelerator.com/usbdescreqparser/ output

0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x06,        // Usage (Keyboard)
0xA1, 0x01,        // Collection (Application)
0x05, 0x07,        //   Usage Page (Kbrd/Keypad)
0x19, 0xE0,        //   Usage Minimum (0xE0)
0x29, 0xE7,        //   Usage Maximum (0xE7)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0x01,        //   Logical Maximum (1)
0x75, 0x01,        //   Report Size (1)
0x95, 0x08,        //   Report Count (8)
0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x01,        //   Report Count (1)
0x75, 0x08,        //   Report Size (8)
0x81, 0x01,        //   Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x03,        //   Report Count (3)
0x75, 0x01,        //   Report Size (1)
0x05, 0x08,        //   Usage Page (LEDs)
0x19, 0x01,        //   Usage Minimum (Num Lock)
0x29, 0x03,        //   Usage Maximum (Scroll Lock)
0x91, 0x02,        //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x95, 0x05,        //   Report Count (5)
0x75, 0x01,        //   Report Size (1)
0x91, 0x01,        //   Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x95, 0x06,        //   Report Count (6)
0x75, 0x08,        //   Report Size (8)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x05, 0x07,        //   Usage Page (Kbrd/Keypad)
0x19, 0x00,        //   Usage Minimum (0x00)
0x2A, 0xFF, 0x00,  //   Usage Maximum (0xFF)
0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              // End Collection

// 65 bytes


I use a brutal force method to get the Windows HID descriptor by changing the Windows HID driver to WinUSB. Then I use libusb xusb test to extract the HID report descriptor. I believe this value will be correct. https://github.com/libusb/libusb/blob/master/examples/xusb.c#L616 ``` printf("\nReading HID Report Descriptors:\n"); descriptor_size = libusb_control_transfer(handle, LIBUSB_ENDPOINT_IN|LIBUSB_REQUEST_TYPE_STANDARD|LIBUSB_RECIPIENT_INTERFACE, LIBUSB_REQUEST_GET_DESCRIPTOR, LIBUSB_DT_REPORT<<8, 0, hid_report_descriptor, sizeof(hid_report_descriptor), 1000); ``` Minor hack to use the "-s" ``` diff --git a/examples/xusb.c b/examples/xusb.c index bf328fe..77ec516 100644 --- a/examples/xusb.c +++ b/examples/xusb.c @@ -1044,15 +1044,19 @@ int main(int argc, char** argv) test_mode = USE_PS3; break; case 's': - // Microsoft Sidewinder Precision Pro Joystick - 1 HID interface - VID = 0x045E; - PID = 0x0008; + if (!VID && !PID) { + // Microsoft Sidewinder Precision Pro Joystick - 1 HID interface + VID = 0x045E; + PID = 0x0008; + } test_mode = USE_HID; break; case 'x': ``` Now this is what I get. ``` Reading string descriptors: String (0x01): "DELL" String (0x02): "Dell USB Entry Keyboard" Reading HID Report Descriptors: 00000000 05 01 09 06 a1 01 05 07 19 e0 29 e7 15 00 25 01 ..........)...%. 00000010 75 01 95 08 81 02 95 01 75 08 81 01 95 03 75 01 u.......u.....u. 00000020 05 08 19 01 29 03 91 02 95 05 75 01 91 01 95 06 ....).....u..... 00000030 75 08 15 00 26 ff 00 05 07 19 00 2a ff 00 81 00 u...&......*.... 00000040 c0 . Skipping Feature Report readout (None detected) Reading Input Report (length 8)... 00000000 00 00 00 00 00 00 00 00 ........ Testing interrupt read using endpoint 81... 00000000 00 00 00 00 00 00 00 00 ``` https://eleccelerator.com/usbdescreqparser/ output ``` 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x06, // Usage (Keyboard) 0xA1, 0x01, // Collection (Application) 0x05, 0x07, // Usage Page (Kbrd/Keypad) 0x19, 0xE0, // Usage Minimum (0xE0) 0x29, 0xE7, // Usage Maximum (0xE7) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x75, 0x01, // Report Size (1) 0x95, 0x08, // Report Count (8) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x95, 0x01, // Report Count (1) 0x75, 0x08, // Report Size (8) 0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x95, 0x03, // Report Count (3) 0x75, 0x01, // Report Size (1) 0x05, 0x08, // Usage Page (LEDs) 0x19, 0x01, // Usage Minimum (Num Lock) 0x29, 0x03, // Usage Maximum (Scroll Lock) 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x95, 0x05, // Report Count (5) 0x75, 0x01, // Report Size (1) 0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x95, 0x06, // Report Count (6) 0x75, 0x08, // Report Size (8) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x05, 0x07, // Usage Page (Kbrd/Keypad) 0x19, 0x00, // Usage Minimum (0x00) 0x2A, 0xFF, 0x00, // Usage Maximum (0xFF) 0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) 0xC0, // End Collection // 65 bytes ```
mcuee commented 2021-07-12 04:37:18 -05:00 (Migrated from github.com)

I can confirm the brutal method will work.

Here is the macOS dump of the Logitech USB receiver (Interface 0)

                        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

Here is the brutal method (using WinUSB driver and "xusb -s".

Reading string descriptors:
   String (0x01): "Logitech"
   String (0x02): "USB Receiver"

Reading HID Report Descriptors:

  00000000  05 01 09 06 a1 01 05 07 19 e0 29 e7 15 00 25 01  ..........)...%.
  00000010  75 01 95 08 81 02 81 03 95 05 05 08 19 01 29 05  u.............).
  00000020  91 02 95 01 75 03 91 01 95 06 75 08 15 00 26 a4  ....u.....u...&.
  00000030  00 05 07 19 00 2a a4 00 81 00 c0                 .....*.....

Skipping Feature Report readout (None detected)
I can confirm the brutal method will work. Here is the macOS dump of the Logitech USB receiver (Interface 0) ``` 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 ``` Here is the brutal method (using WinUSB driver and "xusb -s". ``` Reading string descriptors: String (0x01): "Logitech" String (0x02): "USB Receiver" Reading HID Report Descriptors: 00000000 05 01 09 06 a1 01 05 07 19 e0 29 e7 15 00 25 01 ..........)...%. 00000010 75 01 95 08 81 02 81 03 95 05 05 08 19 01 29 05 u.............). 00000020 91 02 95 01 75 03 91 01 95 06 75 08 15 00 26 a4 ....u.....u...&. 00000030 00 05 07 19 00 2a a4 00 81 00 c0 .....*..... Skipping Feature Report readout (None detected) ```
mcuee commented 2021-07-12 04:47:45 -05:00 (Migrated from github.com)

Brutal force method for the Dell Optical Mouse. Looks like #262 is not so correct.

Reading string descriptors:
   String (0x01): "Logitech"
   String (0x02): "USB Optical Mouse"

Reading HID Report Descriptors:

  00000000  05 01 09 02 a1 01 09 01 a1 00 05 09 19 01 29 03  ..............).
  00000010  15 00 25 01 95 08 75 01 81 02 05 01 09 30 09 31  ..%...u......0.1
  00000020  09 38 15 81 25 7f 75 08 95 03 81 06 c0 c0        .8..%.u.......

Skipping Feature Report readout (None detected)

https://eleccelerator.com/usbdescreqparser/ output

0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x02,        // Usage (Mouse)
0xA1, 0x01,        // Collection (Application)
0x09, 0x01,        //   Usage (Pointer)
0xA1, 0x00,        //   Collection (Physical)
0x05, 0x09,        //     Usage Page (Button)
0x19, 0x01,        //     Usage Minimum (0x01)
0x29, 0x03,        //     Usage Maximum (0x03)
0x15, 0x00,        //     Logical Minimum (0)
0x25, 0x01,        //     Logical Maximum (1)
0x95, 0x08,        //     Report Count (8)
0x75, 0x01,        //     Report Size (1)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x01,        //     Usage Page (Generic Desktop Ctrls)
0x09, 0x30,        //     Usage (X)
0x09, 0x31,        //     Usage (Y)
0x09, 0x38,        //     Usage (Wheel)
0x15, 0x81,        //     Logical Minimum (-127)
0x25, 0x7F,        //     Logical Maximum (127)
0x75, 0x08,        //     Report Size (8)
0x95, 0x03,        //     Report Count (3)
0x81, 0x06,        //     Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              //   End Collection
0xC0,              // End Collection

// 46 bytes

#262 output:

Device Found
  type: 046d c077
  path: \\?\hid#vid_046d&pid_c077#e&fde55df&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 
  Manufacturer: Logitech
  Product:      USB Optical Mouse
  Release:      7200
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor: 
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 03            Report Count (3)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(52 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 
0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 
0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 
0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38, 
0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06, 
0xc0, 0xc0, 
Brutal force method for the Dell Optical Mouse. Looks like #262 is not so correct. ``` Reading string descriptors: String (0x01): "Logitech" String (0x02): "USB Optical Mouse" Reading HID Report Descriptors: 00000000 05 01 09 02 a1 01 09 01 a1 00 05 09 19 01 29 03 ..............). 00000010 15 00 25 01 95 08 75 01 81 02 05 01 09 30 09 31 ..%...u......0.1 00000020 09 38 15 81 25 7f 75 08 95 03 81 06 c0 c0 .8..%.u....... Skipping Feature Report readout (None detected) ``` https://eleccelerator.com/usbdescreqparser/ output ``` 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x02, // Usage (Mouse) 0xA1, 0x01, // Collection (Application) 0x09, 0x01, // Usage (Pointer) 0xA1, 0x00, // Collection (Physical) 0x05, 0x09, // Usage Page (Button) 0x19, 0x01, // Usage Minimum (0x01) 0x29, 0x03, // Usage Maximum (0x03) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x95, 0x08, // Report Count (8) 0x75, 0x01, // Report Size (1) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x30, // Usage (X) 0x09, 0x31, // Usage (Y) 0x09, 0x38, // Usage (Wheel) 0x15, 0x81, // Logical Minimum (-127) 0x25, 0x7F, // Logical Maximum (127) 0x75, 0x08, // Report Size (8) 0x95, 0x03, // Report Count (3) 0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) 0xC0, // End Collection 0xC0, // End Collection // 46 bytes ``` #262 output: ``` Device Found type: 046d c077 path: \\?\hid#vid_046d&pid_c077#e&fde55df&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Optical Mouse Release: 7200 Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 03 Report Count (3) 81 06 Input (0x06) C0 End Collection C0 End Collection (52 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06, 0xc0, 0xc0, ```
JoergAtGithub commented 2021-07-12 17:20:06 -05:00 (Migrated from github.com)

Dell Optical Mouse. Looks like #262 is not so correct.

No, this is the intended behavior. The three extra items:

75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding

are const padding bit's to fill up the number of input report bits to full bytes. If these bits are defined explicitly in the report descriptor or not can only guessed by a reconstructor. But this doesn't change the logical meaning.

> Dell Optical Mouse. Looks like #262 is not so correct. No, this is the intended behavior. The three extra items: ``` 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding ``` are const padding bit's to fill up the number of input report bits to full bytes. If these bits are defined explicitly in the report descriptor or not can only guessed by a reconstructor. But this doesn't change the logical meaning.
mcuee commented 2021-07-13 02:14:41 -05:00 (Migrated from github.com)

Thanks for the explanation for the padding. Still all in all I think this approach is difficult. Maybe you can take a look at the reverse engineered hid_preparsed_data idea mentioned here https://github.com/libusb/hidapi/issues/249#issuecomment-873029494.

Thanks for the explanation for the padding. Still all in all I think this approach is difficult. Maybe you can take a look at the reverse engineered hid_preparsed_data idea mentioned here https://github.com/libusb/hidapi/issues/249#issuecomment-873029494.
JoergAtGithub commented 2021-07-13 13:30:45 -05:00 (Migrated from github.com)

Thanks for the explanation for the padding. Still all in all I think this approach is difficult. Maybe you can take a look at the reverse engineered hid_preparsed_data idea mentioned here #249 (comment).

Yes, I also think, that the reengineering approach has the potential for a more accurate reconstruction. It can hopefully fix all the functional relevant bit position issues, but for non-functional items, like the constant padding-bits at the report end, the reconstruction will still remain on assumptions.
I will start as second PR, based on the #262 reconstructor, bút using the reengineering approach to gather the data. Than we can compare both and decide which should be used.

> > > Thanks for the explanation for the padding. Still all in all I think this approach is difficult. Maybe you can take a look at the reverse engineered hid_preparsed_data idea mentioned here [#249 (comment)](https://github.com/libusb/hidapi/issues/249#issuecomment-873029494). Yes, I also think, that the reengineering approach has the potential for a more accurate reconstruction. It can hopefully fix all the functional relevant bit position issues, but for non-functional items, like the constant padding-bits at the report end, the reconstruction will still remain on assumptions. I will start as second PR, based on the #262 reconstructor, bút using the reengineering approach to gather the data. Than we can compare both and decide which should be used.
mcuee commented 2021-07-13 19:32:47 -05:00 (Migrated from github.com)

I will start as second PR, based on the #262 reconstructor, bút using the reengineering approach to gather the data. Than we can compare both and decide which should be used.

That will be great. Now that I figured out a way to dump the correct USB HID device descriptors under Windows, it is pretty easy for me to carry out the tests under Windows without relying on Linux/macOS.

> I will start as second PR, based on the #262 reconstructor, bút using the reengineering approach to gather the data. Than we can compare both and decide which should be used. That will be great. Now that I figured out a way to dump the correct USB HID device descriptors under Windows, it is pretty easy for me to carry out the tests under Windows without relying on Linux/macOS.
JoergAtGithub commented 2021-07-17 04:46:09 -05:00 (Migrated from github.com)

Test result for Microchip PICkit 2. There seems to be a problem with report count reporting from #262.

I hope I could fix this issue in the latest commit, could you please test this device again. Does it now report the correct ReportCount of 64?

Could you also provide the output for the Dell keyboard of this version. I added some debug output, which hopefully helps to understand the root cause for this issue.

> > > Test result for Microchip PICkit 2. There seems to be a problem with report count reporting from #262. I hope I could fix this issue in the latest commit, could you please test this device again. Does it now report the correct ReportCount of 64? Could you also provide the output for the Dell keyboard of this version. I added some debug output, which hopefully helps to understand the root cause for this issue.
mcuee commented 2021-07-17 08:34:46 -05:00 (Migrated from github.com)

This is the result of Microchip PICkit 2 with latest git commit github.com/JoergAtGithub/hidapi@9bd708ae6e .
#262 does not get the report count 64 correct.

Device Found
  type: 04d8 0033
  path: \\?\hid#vid_04d8&pid_0033#e&bd5b18b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: pk2new
  Manufacturer: Microchip Technology Inc.
  Product:      PICkit 2 Microcontroller Programmer
  Release:      2
  Interface:    -1
  Usage (page): 0x1 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 01            Report Count (1)
91 02            Output (0x02)
C0               End Collection
(38 bytes)
0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x19, 0x01, 0x29,
0x40, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x01,
0x81, 0x02, 0x19, 0x01, 0x29, 0x40, 0x15, 0x00, 0x26, 0xff,
0x00, 0x75, 0x08, 0x95, 0x01, 0x91, 0x02, 0xc0,

Original source code

rom struct{byte report[29];}hid_rpt01={
    0x06, 0x00, 0xFF,       // Usage Page (Vendor Defined)
    0x09, 0x01,             // Usage (Vendor Usage)
    0xA1, 0x01,             // Collection (Application)
    0x19, 0x01,             //      Usage Minimum (Vendor Usage = 1)
//    0x29, 0x08,             //      Usage Maximum (Vendor Usage = 8)
    0x29, 0x40,             //      Usage Maximum (Vendor Usage = 64)
    0x15, 0x00,             //      Logical Minimum (Vendor Usage = 0)
    0x26, 0xFF, 0x00,       //      Logical Maximum (Vendor Usage = 255)
    0x75, 0x08,             //      Report Size (Vendor Usage = 8)
//    0x95, 0x08,             //      Report Count (Vendor Usage = 8)
    0x95, 0x40,             //      Report Count (Vendor Usage = 64)
    0x81, 0x02,             //      Input (Data, Var, Abs)
    0x19, 0x01,             //      Usage Minimum (Vendor Usage = 1)
//    0x29, 0x08,             //      Usage Maximum (Vendor Usage = 8)
    0x29, 0x40,             //      Usage Maximum (Vendor Usage = 64)
    0x91, 0x02,             //      Output (Data, Var, Ads)
    0xC0};                  // End Collection

Output from xusb (with Windows HID driver)

Reading string descriptors:
   String (0x01): "Microchip Technology Inc."
   String (0x02): "PICkit 2 Microcontroller Programmer"
   String (0x03): "pk2new"

Reading HID Report Descriptors:

  00000000  06 00 ff 09 01 a1 01 09 01 15 00 25 ff 75 08 95  ...........%.u..
  00000010  40 81 00 09 02 15 00 25 ff 75 08 95 40 91 00 c0  @......%.u..@...

This is actually basically correct.

0x06, 0x00, 0xFF,  // Usage Page (Vendor Defined 0xFF00)
0x09, 0x01,        // Usage (0x01)
0xA1, 0x01,        // Collection (Application)
0x09, 0x01,        //   Usage (0x01)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0xFF,        //   Logical Maximum (-1)
0x75, 0x08,        //   Report Size (8)
0x95, 0x40,        //   Report Count (64)
0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x02,        //   Usage (0x02)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0xFF,        //   Logical Maximum (-1)
0x75, 0x08,        //   Report Size (8)
0x95, 0x40,        //   Report Count (64)
0x91, 0x00,        //   Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              // End Collection

// 32 bytes

Using xusb and WinUSB driver (which will get the exact report descriptor)

Reading string descriptors:
   String (0x01): "Microchip Technology Inc."
   String (0x02): "PICkit 2 Microcontroller Programmer"
   String (0x03): "pk2new"

Reading HID Report Descriptors:

  00000000  06 00 ff 09 01 a1 01 19 01 29 40 15 00 26 ff 00  .........)@..&..
  00000010  75 08 95 40 81 02 19 01 29 40 91 02 c0           u..@....)@...
This is the result of Microchip PICkit 2 with latest git commit https://github.com/JoergAtGithub/hidapi/commit/9bd708ae6e847a6702ba9107ac1ec45d5c8a4f2a . #262 does not get the report count 64 correct. ``` Device Found type: 04d8 0033 path: \\?\hid#vid_04d8&pid_0033#e&bd5b18b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: pk2new Manufacturer: Microchip Technology Inc. Product: PICkit 2 Microcontroller Programmer Release: 2 Interface: -1 Usage (page): 0x1 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) 91 02 Output (0x02) C0 End Collection (38 bytes) 0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x19, 0x01, 0x29, 0x40, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x19, 0x01, 0x29, 0x40, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x01, 0x91, 0x02, 0xc0, ``` Original source code ``` rom struct{byte report[29];}hid_rpt01={ 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined) 0x09, 0x01, // Usage (Vendor Usage) 0xA1, 0x01, // Collection (Application) 0x19, 0x01, // Usage Minimum (Vendor Usage = 1) // 0x29, 0x08, // Usage Maximum (Vendor Usage = 8) 0x29, 0x40, // Usage Maximum (Vendor Usage = 64) 0x15, 0x00, // Logical Minimum (Vendor Usage = 0) 0x26, 0xFF, 0x00, // Logical Maximum (Vendor Usage = 255) 0x75, 0x08, // Report Size (Vendor Usage = 8) // 0x95, 0x08, // Report Count (Vendor Usage = 8) 0x95, 0x40, // Report Count (Vendor Usage = 64) 0x81, 0x02, // Input (Data, Var, Abs) 0x19, 0x01, // Usage Minimum (Vendor Usage = 1) // 0x29, 0x08, // Usage Maximum (Vendor Usage = 8) 0x29, 0x40, // Usage Maximum (Vendor Usage = 64) 0x91, 0x02, // Output (Data, Var, Ads) 0xC0}; // End Collection ``` Output from xusb (with Windows HID driver) ``` Reading string descriptors: String (0x01): "Microchip Technology Inc." String (0x02): "PICkit 2 Microcontroller Programmer" String (0x03): "pk2new" Reading HID Report Descriptors: 00000000 06 00 ff 09 01 a1 01 09 01 15 00 25 ff 75 08 95 ...........%.u.. 00000010 40 81 00 09 02 15 00 25 ff 75 08 95 40 91 00 c0 @......%.u..@... ``` This is actually basically correct. ``` 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 0x09, 0x01, // Usage (0x01) 0xA1, 0x01, // Collection (Application) 0x09, 0x01, // Usage (0x01) 0x15, 0x00, // Logical Minimum (0) 0x25, 0xFF, // Logical Maximum (-1) 0x75, 0x08, // Report Size (8) 0x95, 0x40, // Report Count (64) 0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x09, 0x02, // Usage (0x02) 0x15, 0x00, // Logical Minimum (0) 0x25, 0xFF, // Logical Maximum (-1) 0x75, 0x08, // Report Size (8) 0x95, 0x40, // Report Count (64) 0x91, 0x00, // Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection // 32 bytes ``` Using xusb and WinUSB driver (which will get the exact report descriptor) ``` Reading string descriptors: String (0x01): "Microchip Technology Inc." String (0x02): "PICkit 2 Microcontroller Programmer" String (0x03): "pk2new" Reading HID Report Descriptors: 00000000 06 00 ff 09 01 a1 01 19 01 29 40 15 00 26 ff 00 .........)@..&.. 00000010 75 08 95 40 81 02 19 01 29 40 91 02 c0 u..@....)@... ```
mcuee commented 2021-07-17 08:59:52 -05:00 (Migrated from github.com)

Another device of interests, Dell USB Mouse, #262 got the exact report correctly.

xusb using WinUSB driver

Reading string descriptors:
   String (0x01): "Dell"
   String (0x02): "Dell USB Optical Mouse"

Reading HID Report Descriptors:

  00000000  05 01 09 02 a1 01 09 01 a1 00 05 09 19 01 29 03  ..............).
  00000010  15 00 25 01 75 01 95 03 81 02 75 05 95 01 81 01  ..%.u.....u.....
  00000020  05 01 09 30 09 31 09 38 15 81 25 7f 75 08 95 03  ...0.1.8..%.u...
  00000030  81 06 c0 c0                                      ....

Parser output

0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x02,        // Usage (Mouse)
0xA1, 0x01,        // Collection (Application)
0x09, 0x01,        //   Usage (Pointer)
0xA1, 0x00,        //   Collection (Physical)
0x05, 0x09,        //     Usage Page (Button)
0x19, 0x01,        //     Usage Minimum (0x01)
0x29, 0x03,        //     Usage Maximum (0x03)
0x15, 0x00,        //     Logical Minimum (0)
0x25, 0x01,        //     Logical Maximum (1)
0x75, 0x01,        //     Report Size (1)
0x95, 0x03,        //     Report Count (3)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x75, 0x05,        //     Report Size (5)
0x95, 0x01,        //     Report Count (1)
0x81, 0x01,        //     Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x01,        //     Usage Page (Generic Desktop Ctrls)
0x09, 0x30,        //     Usage (X)
0x09, 0x31,        //     Usage (Y)
0x09, 0x38,        //     Usage (Wheel)
0x15, 0x81,        //     Logical Minimum (-127)
0x25, 0x7F,        //     Logical Maximum (127)
0x75, 0x08,        //     Report Size (8)
0x95, 0x03,        //     Report Count (3)
0x81, 0x06,        //     Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              //   End Collection
0xC0,              // End Collection

// 52 bytes

#262 output

Device Found
  type: 413c 3012
  path: \\?\hid#vid_413c&pid_3012#7&34a1d692&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Dell
  Product:      Dell USB Optical Mouse
  Release:      4301
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 03            Report Count (3)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(52 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01,
0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38,
0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06,
0xc0, 0xc0,
Another device of interests, Dell USB Mouse, #262 got the exact report correctly. xusb using WinUSB driver ``` Reading string descriptors: String (0x01): "Dell" String (0x02): "Dell USB Optical Mouse" Reading HID Report Descriptors: 00000000 05 01 09 02 a1 01 09 01 a1 00 05 09 19 01 29 03 ..............). 00000010 15 00 25 01 75 01 95 03 81 02 75 05 95 01 81 01 ..%.u.....u..... 00000020 05 01 09 30 09 31 09 38 15 81 25 7f 75 08 95 03 ...0.1.8..%.u... 00000030 81 06 c0 c0 .... ``` Parser output ``` 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x02, // Usage (Mouse) 0xA1, 0x01, // Collection (Application) 0x09, 0x01, // Usage (Pointer) 0xA1, 0x00, // Collection (Physical) 0x05, 0x09, // Usage Page (Button) 0x19, 0x01, // Usage Minimum (0x01) 0x29, 0x03, // Usage Maximum (0x03) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x75, 0x01, // Report Size (1) 0x95, 0x03, // Report Count (3) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x75, 0x05, // Report Size (5) 0x95, 0x01, // Report Count (1) 0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x30, // Usage (X) 0x09, 0x31, // Usage (Y) 0x09, 0x38, // Usage (Wheel) 0x15, 0x81, // Logical Minimum (-127) 0x25, 0x7F, // Logical Maximum (127) 0x75, 0x08, // Report Size (8) 0x95, 0x03, // Report Count (3) 0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) 0xC0, // End Collection 0xC0, // End Collection // 52 bytes ``` #262 output ``` Device Found type: 413c 3012 path: \\?\hid#vid_413c&pid_3012#7&34a1d692&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Dell Product: Dell USB Optical Mouse Release: 4301 Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 03 Report Count (3) 81 06 Input (0x06) C0 End Collection C0 End Collection (52 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06, 0xc0, 0xc0, ```
mcuee commented 2021-07-17 09:14:22 -05:00 (Migrated from github.com)

One more device: Logitech Dual Action Gamepad

xusb output with Windows HID driver, which is obviously wrong.

Reading string descriptors:
   String (0x01): "Logitech"
   String (0x02): "Logitech Dual Action"

Reading HID Report Descriptors:

  00000000  06 01 00 09 04 a1 01 09 01 15 00 25 ff 75 08 95  ...........%.u..
  00000010  08 81 00 09 02 15 00 25 ff 75 08 95 07 91 00 09  .......%.u......
  00000020  03 15 00 25 ff 75 08 95 05 b2 02 01 c0           ...%.u.......

xusb output with WinUSB driver

Reading string descriptors:
   String (0x01): "Logitech"
   String (0x02): "Logitech Dual Action"

Reading HID Report Descriptors:

  00000000  05 01 09 04 a1 01 a1 02 15 00 26 ff 00 35 00 46  ..........&..5.F
  00000010  ff 00 75 08 95 04 09 30 09 31 09 32 09 35 81 02  ..u....0.1.2.5..
  00000020  25 07 46 3b 01 75 04 95 01 65 14 09 39 81 42 65  %.F;.u...e..9.Be
  00000030  00 25 01 45 01 75 01 95 0c 05 09 19 01 29 0c 81  .%.E.u.......)..
  00000040  02 06 00 ff 75 01 95 10 25 01 45 01 09 01 81 02  ....u...%.E.....
  00000050  c0 a1 02 26 ff 00 46 ff 00 75 08 95 07 09 02 91  ...&..F..u......
  00000060  02 c0 a1 02 26 ff 00 46 ff 00 75 08 95 05 06 00  ....&..F..u.....
  00000070  ff 09 01 b1 02 c0 c0                             .......

Parser output

0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x04,        // Usage (Joystick)
0xA1, 0x01,        // Collection (Application)
0xA1, 0x02,        //   Collection (Logical)
0x15, 0x00,        //     Logical Minimum (0)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x35, 0x00,        //     Physical Minimum (0)
0x46, 0xFF, 0x00,  //     Physical Maximum (255)
0x75, 0x08,        //     Report Size (8)
0x95, 0x04,        //     Report Count (4)
0x09, 0x30,        //     Usage (X)
0x09, 0x31,        //     Usage (Y)
0x09, 0x32,        //     Usage (Z)
0x09, 0x35,        //     Usage (Rz)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x25, 0x07,        //     Logical Maximum (7)
0x46, 0x3B, 0x01,  //     Physical Maximum (315)
0x75, 0x04,        //     Report Size (4)
0x95, 0x01,        //     Report Count (1)
0x65, 0x14,        //     Unit (System: English Rotation, Length: Centimeter)
0x09, 0x39,        //     Usage (Hat switch)
0x81, 0x42,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State)
0x65, 0x00,        //     Unit (None)
0x25, 0x01,        //     Logical Maximum (1)
0x45, 0x01,        //     Physical Maximum (1)
0x75, 0x01,        //     Report Size (1)
0x95, 0x0C,        //     Report Count (12)
0x05, 0x09,        //     Usage Page (Button)
0x19, 0x01,        //     Usage Minimum (0x01)
0x29, 0x0C,        //     Usage Maximum (0x0C)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x06, 0x00, 0xFF,  //     Usage Page (Vendor Defined 0xFF00)
0x75, 0x01,        //     Report Size (1)
0x95, 0x10,        //     Report Count (16)
0x25, 0x01,        //     Logical Maximum (1)
0x45, 0x01,        //     Physical Maximum (1)
0x09, 0x01,        //     Usage (0x01)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              //   End Collection
0xA1, 0x02,        //   Collection (Logical)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x46, 0xFF, 0x00,  //     Physical Maximum (255)
0x75, 0x08,        //     Report Size (8)
0x95, 0x07,        //     Report Count (7)
0x09, 0x02,        //     Usage (0x02)
0x91, 0x02,        //     Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0xA1, 0x02,        //   Collection (Logical)
0x26, 0xFF, 0x00,  //     Logical Maximum (255)
0x46, 0xFF, 0x00,  //     Physical Maximum (255)
0x75, 0x08,        //     Report Size (8)
0x95, 0x05,        //     Report Count (5)
0x06, 0x00, 0xFF,  //     Usage Page (Vendor Defined 0xFF00)
0x09, 0x01,        //     Usage (0x01)
0xB1, 0x02,        //     Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              //   End Collection
0xC0,              // End Collection

// 119 bytes

#262 output

Device Found
  type: 046d c216
  path: \\?\hid#vid_046d&pid_c216#7&13abe62c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      Logitech Dual Action
  Release:      300
  Interface:    -1
  Usage (page): 0x4 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 04            Usage  (4)
A1 01            Collection (Application)
09 00            Usage  (0)
A1 02            Collection (Logical)
06 00 FF         Usage Page (65280)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
09 32            Usage (50)
09 35            Usage (53)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
46 FF 00         Physical Maximum (255)
75 08            Report Size (8)
95 04            Report Count (4)
81 02            Input (0x02)
09 39            Usage (57)
15 00            Logical Minimum (0)
25 07            Logical Maximum (7)
35 00            Physical Minimum (0)
46 3B 01         Physical Maximum (315)
65 14            Unit (20)
75 04            Report Size (4)
95 01            Report Count (1)
81 42            Input (0x42)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 0C            Usage Maximum (12)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 0C            Report Count (12)
45 00            Physical Maximum (0)
65 00            Unit (0)
81 02            Input (0x02)
C0               End Collection
06 00 FF         Usage Page (65280)
09 00            Usage  (0)
A1 02            Collection (Logical)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
46 FF 00         Physical Maximum (255)
75 08            Report Size (8)
95 07            Report Count (7)
91 02            Output (0x02)
C0               End Collection
09 00            Usage  (0)
A1 02            Collection (Logical)
09 01            Usage (1)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 05            Report Count (5)
B1 02            Feature (0x02)
C0               End Collection
C0               End Collection
(136 bytes)
0x05, 0x01, 0x09, 0x04, 0xa1, 0x01, 0x09, 0x00, 0xa1, 0x02,
0x06, 0x00, 0xff, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75,
0x01, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30, 0x09,
0x31, 0x09, 0x32, 0x09, 0x35, 0x15, 0x00, 0x26, 0xff, 0x00,
0x35, 0x00, 0x46, 0xff, 0x00, 0x75, 0x08, 0x95, 0x04, 0x81,
0x02, 0x09, 0x39, 0x15, 0x00, 0x25, 0x07, 0x35, 0x00, 0x46,
0x3b, 0x01, 0x65, 0x14, 0x75, 0x04, 0x95, 0x01, 0x81, 0x42,
0x05, 0x09, 0x19, 0x01, 0x29, 0x0c, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x0c, 0x45, 0x00, 0x65, 0x00, 0x81, 0x02,
0xc0, 0x06, 0x00, 0xff, 0x09, 0x00, 0xa1, 0x02, 0x09, 0x02,
0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x46, 0xff, 0x00,
0x75, 0x08, 0x95, 0x07, 0x91, 0x02, 0xc0, 0x09, 0x00, 0xa1,
0x02, 0x09, 0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08,
0x95, 0x05, 0xb1, 0x02, 0xc0, 0xc0,
One more device: Logitech Dual Action Gamepad xusb output with Windows HID driver, which is obviously wrong. ``` Reading string descriptors: String (0x01): "Logitech" String (0x02): "Logitech Dual Action" Reading HID Report Descriptors: 00000000 06 01 00 09 04 a1 01 09 01 15 00 25 ff 75 08 95 ...........%.u.. 00000010 08 81 00 09 02 15 00 25 ff 75 08 95 07 91 00 09 .......%.u...... 00000020 03 15 00 25 ff 75 08 95 05 b2 02 01 c0 ...%.u....... ``` xusb output with WinUSB driver ``` Reading string descriptors: String (0x01): "Logitech" String (0x02): "Logitech Dual Action" Reading HID Report Descriptors: 00000000 05 01 09 04 a1 01 a1 02 15 00 26 ff 00 35 00 46 ..........&..5.F 00000010 ff 00 75 08 95 04 09 30 09 31 09 32 09 35 81 02 ..u....0.1.2.5.. 00000020 25 07 46 3b 01 75 04 95 01 65 14 09 39 81 42 65 %.F;.u...e..9.Be 00000030 00 25 01 45 01 75 01 95 0c 05 09 19 01 29 0c 81 .%.E.u.......).. 00000040 02 06 00 ff 75 01 95 10 25 01 45 01 09 01 81 02 ....u...%.E..... 00000050 c0 a1 02 26 ff 00 46 ff 00 75 08 95 07 09 02 91 ...&..F..u...... 00000060 02 c0 a1 02 26 ff 00 46 ff 00 75 08 95 05 06 00 ....&..F..u..... 00000070 ff 09 01 b1 02 c0 c0 ....... ``` Parser output ``` 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x04, // Usage (Joystick) 0xA1, 0x01, // Collection (Application) 0xA1, 0x02, // Collection (Logical) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x35, 0x00, // Physical Minimum (0) 0x46, 0xFF, 0x00, // Physical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x04, // Report Count (4) 0x09, 0x30, // Usage (X) 0x09, 0x31, // Usage (Y) 0x09, 0x32, // Usage (Z) 0x09, 0x35, // Usage (Rz) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x25, 0x07, // Logical Maximum (7) 0x46, 0x3B, 0x01, // Physical Maximum (315) 0x75, 0x04, // Report Size (4) 0x95, 0x01, // Report Count (1) 0x65, 0x14, // Unit (System: English Rotation, Length: Centimeter) 0x09, 0x39, // Usage (Hat switch) 0x81, 0x42, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State) 0x65, 0x00, // Unit (None) 0x25, 0x01, // Logical Maximum (1) 0x45, 0x01, // Physical Maximum (1) 0x75, 0x01, // Report Size (1) 0x95, 0x0C, // Report Count (12) 0x05, 0x09, // Usage Page (Button) 0x19, 0x01, // Usage Minimum (0x01) 0x29, 0x0C, // Usage Maximum (0x0C) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 0x75, 0x01, // Report Size (1) 0x95, 0x10, // Report Count (16) 0x25, 0x01, // Logical Maximum (1) 0x45, 0x01, // Physical Maximum (1) 0x09, 0x01, // Usage (0x01) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0xC0, // End Collection 0xA1, 0x02, // Collection (Logical) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x46, 0xFF, 0x00, // Physical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x07, // Report Count (7) 0x09, 0x02, // Usage (0x02) 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection 0xA1, 0x02, // Collection (Logical) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x46, 0xFF, 0x00, // Physical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x05, // Report Count (5) 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 0x09, 0x01, // Usage (0x01) 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection 0xC0, // End Collection // 119 bytes ``` #262 output ``` Device Found type: 046d c216 path: \\?\hid#vid_046d&pid_c216#7&13abe62c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: Logitech Dual Action Release: 300 Interface: -1 Usage (page): 0x4 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 04 Usage (4) A1 01 Collection (Application) 09 00 Usage (0) A1 02 Collection (Logical) 06 00 FF Usage Page (65280) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 09 32 Usage (50) 09 35 Usage (53) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 46 FF 00 Physical Maximum (255) 75 08 Report Size (8) 95 04 Report Count (4) 81 02 Input (0x02) 09 39 Usage (57) 15 00 Logical Minimum (0) 25 07 Logical Maximum (7) 35 00 Physical Minimum (0) 46 3B 01 Physical Maximum (315) 65 14 Unit (20) 75 04 Report Size (4) 95 01 Report Count (1) 81 42 Input (0x42) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 0C Usage Maximum (12) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 0C Report Count (12) 45 00 Physical Maximum (0) 65 00 Unit (0) 81 02 Input (0x02) C0 End Collection 06 00 FF Usage Page (65280) 09 00 Usage (0) A1 02 Collection (Logical) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 46 FF 00 Physical Maximum (255) 75 08 Report Size (8) 95 07 Report Count (7) 91 02 Output (0x02) C0 End Collection 09 00 Usage (0) A1 02 Collection (Logical) 09 01 Usage (1) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 05 Report Count (5) B1 02 Feature (0x02) C0 End Collection C0 End Collection (136 bytes) 0x05, 0x01, 0x09, 0x04, 0xa1, 0x01, 0x09, 0x00, 0xa1, 0x02, 0x06, 0x00, 0xff, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x32, 0x09, 0x35, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x46, 0xff, 0x00, 0x75, 0x08, 0x95, 0x04, 0x81, 0x02, 0x09, 0x39, 0x15, 0x00, 0x25, 0x07, 0x35, 0x00, 0x46, 0x3b, 0x01, 0x65, 0x14, 0x75, 0x04, 0x95, 0x01, 0x81, 0x42, 0x05, 0x09, 0x19, 0x01, 0x29, 0x0c, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x0c, 0x45, 0x00, 0x65, 0x00, 0x81, 0x02, 0xc0, 0x06, 0x00, 0xff, 0x09, 0x00, 0xa1, 0x02, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x46, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0x91, 0x02, 0xc0, 0x09, 0x00, 0xa1, 0x02, 0x09, 0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x05, 0xb1, 0x02, 0xc0, 0xc0, ```
JoergAtGithub commented 2021-07-17 09:20:27 -05:00 (Migrated from github.com)

Could you please provide the output with the Dell Keyboard. I need the debug output for this device.

Could you please provide the output with the Dell Keyboard. I need the debug output for this device.
mcuee commented 2021-07-17 09:26:00 -05:00 (Migrated from github.com)

Could you please provide the output with the Dell Keyboard. I need the debug output for this device.

I do not have the keyboard with me now so you have to wait for a few days when I will get access to that one.

> Could you please provide the output with the Dell Keyboard. I need the debug output for this device. I do not have the keyboard with me now so you have to wait for a few days when I will get access to that one.
JoergAtGithub commented 2021-07-17 09:31:31 -05:00 (Migrated from github.com)

Thanks for testing again. The Dell keyboard is of interest, because it has an identical report descriptor to mine keyboard, except of the LogicalMax/UsageMax value, which is 0xFF instead of 0xDD. And mine with 0xDD works. I added some debug output to see what fails in the 0xFF case with Dell.

Thanks for testing again. The Dell keyboard is of interest, because it has an identical report descriptor to mine keyboard, except of the LogicalMax/UsageMax value, which is 0xFF instead of 0xDD. And mine with 0xDD works. I added some debug output to see what fails in the 0xFF case with Dell.
JoergAtGithub commented 2021-07-17 10:45:46 -05:00 (Migrated from github.com)

@mcuee I commited another version to address the Microchip PICkit 2 case. could you please test this device again.

@mcuee I commited another version to address the Microchip PICkit 2 case. could you please test this device again.
mcuee commented 2021-07-17 19:58:08 -05:00 (Migrated from github.com)

@mcuee I commited another version to address the Microchip PICkit 2 case. could you please test this device again.

Yes the latest code is good.

Device Found
  type: 04d8 0033
  path: \\?\hid#vid_04d8&pid_0033#e&bd5b18b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: pk2new
  Manufacturer: Microchip Technology Inc.
  Product:      PICkit 2 Microcontroller Programmer
  Release:      2
  Interface:    -1
  Usage (page): 0x1 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 40            Report Count (64)
81 02            Input (0x02)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 40            Report Count (64)
91 02            Output (0x02)
C0               End Collection
(38 bytes)
0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x19, 0x01, 0x29,
0x40, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x40,
0x81, 0x02, 0x19, 0x01, 0x29, 0x40, 0x15, 0x00, 0x26, 0xff,
0x00, 0x75, 0x08, 0x95, 0x40, 0x91, 0x02, 0xc0,
> @mcuee I commited another version to address the Microchip PICkit 2 case. could you please test this device again. Yes the latest code is good. ``` Device Found type: 04d8 0033 path: \\?\hid#vid_04d8&pid_0033#e&bd5b18b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: pk2new Manufacturer: Microchip Technology Inc. Product: PICkit 2 Microcontroller Programmer Release: 2 Interface: -1 Usage (page): 0x1 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 40 Report Count (64) 81 02 Input (0x02) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 40 Report Count (64) 91 02 Output (0x02) C0 End Collection (38 bytes) 0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x19, 0x01, 0x29, 0x40, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x40, 0x81, 0x02, 0x19, 0x01, 0x29, 0x40, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x40, 0x91, 0x02, 0xc0, ```
mcuee commented 2021-07-17 20:09:45 -05:00 (Migrated from github.com)

@JoergAtGithub
Full log from hidtest.exe. Please take not that "HIDP_STATUS_BUFFER_TOO_SMALL" was triggered for the Logitech USB receiver. It is probably a difficult device to get right due to the complexity.

click to expand for the full run log
C:\work\hid\hidapi_test1\windows\x64\Release [windows_report_descriptor_reconstructor ≡]> .\hidtest.exe
hidapi test/example tool. Compiled with hidapi version 0.11.0, runtime version 0.11.0.
Compile-time version matches runtime version of hidapi.

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&383a3a17&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 02            Report ID (2)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 10            Usage Maximum (16)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 10            Report Count (16)
81 02            Input (0x02)
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 01 F8         Logical Minimum (-2047)
26 FF 07         Logical Maximum (2047)
75 0C            Report Size (12)
95 02            Report Count (2)
81 06            Input (0x06)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(75 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01,
0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07,
0x75, 0x0c, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81,
0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c,
0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95,
0x01, 0x81, 0x06, 0xc0, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&383a3a17&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xc)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
19 01            Usage Minimum (1)
2A 8C 02         Usage Maximum (652)
15 01            Logical Minimum (1)
26 8C 02         Logical Maximum (652)
75 10            Report Size (16)
95 02            Report Count (2)
81 00            Input (0x00)
C0               End Collection
(25 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x01,
0x2a, 0x8c, 0x02, 0x15, 0x01, 0x26, 0x8c, 0x02, 0x75, 0x10,
0x95, 0x02, 0x81, 0x00, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&383a3a17&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x80 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 04            Report ID (4)
09 83            Usage (131)
09 81            Usage (129)
09 82            Usage (130)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 60            Input (0x60)
C0               End Collection
(25 bytes)
0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x04, 0x09, 0x83,
0x09, 0x81, 0x09, 0x82, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x03, 0x81, 0x60, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&383a3a17&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 10            Report ID (16)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
(34 bytes)
0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x10, 0x09,
0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81,
0x00, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
0x01, 0x91, 0x00, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 01            Report ID (1)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 03            Report Count (3)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(69 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x85, 0x01, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05,
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31,
0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03,
0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25,
0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0,

Device Found
  type: 8087 0a1e
  path: \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      200
  Interface:    -1
  Usage (page): 0xc (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 0C            Usage  (12)
A1 01            Collection (Application)
85 08            Report ID (8)
09 C6            Usage (198)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(27 bytes)
0x05, 0x01, 0x09, 0x0c, 0xa1, 0x01, 0x85, 0x08, 0x09, 0xc6,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06,
0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0,

Device Found
  type: 044e 1212
  path: \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
85 07            Report ID (7)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
19 00            Usage Minimum (0)
29 75            Usage Maximum (117)
15 00            Logical Minimum (0)
25 75            Logical Maximum (117)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
C0               End Collection
(45 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x07, 0x05, 0x07,
0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03,
0x19, 0x00, 0x29, 0x75, 0x15, 0x00, 0x25, 0x75, 0x75, 0x08,
0x95, 0x06, 0x81, 0x00, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&383a3a17&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
09 02            Usage  (2)
A1 01            Collection (Application)
85 11            Report ID (17)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
(34 bytes)
0x06, 0x00, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x11, 0x09,
0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81,
0x00, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
0x01, 0x91, 0x00, 0xc0,

Device Found
  type: 8087 0a1e
  path: \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      200
  Interface:    -1
  Usage (page): 0xd (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 0D            Usage  (13)
A1 01            Collection (Application)
09 0D            Usage  (13)
A1 02            Collection (Logical)
85 1C            Report ID (28)
09 81            Usage (129)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
09 CB            Usage (203)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 02            Feature (0x02)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
C0               End Collection
(50 bytes)
0x05, 0x01, 0x09, 0x0d, 0xa1, 0x01, 0x09, 0x0d, 0xa1, 0x02,
0x85, 0x1c, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x01, 0x81, 0x02, 0x09, 0xcb, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x01, 0xb1, 0x02, 0x75, 0x07, 0x95, 0x01,
0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0,

Device Found
  type: 044e 1212
  path: \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 06            Report ID (6)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 00 FE         Logical Minimum (-512)
26 00 02         Logical Maximum (512)
75 10            Report Size (16)
95 02            Report Count (2)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(54 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x85, 0x06, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05,
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31,
0x16, 0x00, 0xfe, 0x26, 0x00, 0x02, 0x75, 0x10, 0x95, 0x02,
0x81, 0x06, 0xc0, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x5 (0xd)
  Report Descriptor:
05 0D            Usage Page (13)
09 05            Usage  (5)
A1 01            Collection (Application)
09 22            Usage  (34)
A1 02            Collection (Logical)
85 08            Report ID (8)
09 47            Usage (71)
09 42            Usage (66)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 02            Input (0x02)
09 51            Usage (81)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
75 03            Report Size (3)
95 01            Report Count (1)
81 02            Input (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
15 00            Logical Minimum (0)
26 AF 04         Logical Maximum (1199)
35 00            Physical Minimum (0)
46 E8 03         Physical Maximum (1000)
55 0E            Unit Exponent (14)
65 11            Unit (17)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 31            Usage (49)
15 00            Logical Minimum (0)
26 7B 02         Logical Maximum (635)
35 00            Physical Minimum (0)
46 12 02         Physical Maximum (530)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
C0               End Collection
05 0D            Usage Page (13)
09 56            Usage (86)
15 00            Logical Minimum (0)
27 FF FF 00 00   Logical Maximum (65535)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 54            Usage (84)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
05 09            Usage Page (9)
09 02            Usage (2)
09 03            Usage (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
81 02            Input (0x02)
85 09            Report ID (9)
05 0D            Usage Page (13)
09 55            Usage (85)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 01            Report Count (1)
B1 02            Feature (0x02)
85 0A            Report ID (10)
06 00 FF         Usage Page (65280)
09 C5            Usage (197)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
96 00 01         Report Count (256)
B1 02            Feature (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(204 bytes)
0x05, 0x0d, 0x09, 0x05, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02,
0x85, 0x08, 0x09, 0x47, 0x09, 0x42, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x02, 0x81, 0x02, 0x09, 0x51, 0x15, 0x00,
0x25, 0x05, 0x75, 0x03, 0x95, 0x01, 0x81, 0x02, 0x75, 0x03,
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x15, 0x00,
0x26, 0xaf, 0x04, 0x35, 0x00, 0x46, 0xe8, 0x03, 0x55, 0x0e,
0x65, 0x11, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x31,
0x15, 0x00, 0x26, 0x7b, 0x02, 0x35, 0x00, 0x46, 0x12, 0x02,
0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0xc0, 0x05, 0x0d, 0x09,
0x56, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x35, 0x00,
0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10,
0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x54, 0x15, 0x00,
0x25, 0x05, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x05, 0x09,
0x09, 0x02, 0x09, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0x81, 0x02,
0x85, 0x09, 0x05, 0x0d, 0x09, 0x55, 0x15, 0x00, 0x25, 0x05,
0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66,
0x01, 0x10, 0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0x85, 0x0a,
0x06, 0x00, 0xff, 0x09, 0xc5, 0x15, 0x00, 0x26, 0xff, 0x00,
0x75, 0x08, 0x96, 0x00, 0x01, 0xb1, 0x02, 0x75, 0x06, 0x95,
0x01, 0x81, 0x03, 0xc0,

Device Found
  type: 04d8 0033
  path: \\?\hid#vid_04d8&pid_0033#e&bd5b18b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: pk2new
  Manufacturer: Microchip Technology Inc.
  Product:      PICkit 2 Microcontroller Programmer
  Release:      2
  Interface:    -1
  Usage (page): 0x1 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 40            Report Count (64)
81 02            Input (0x02)
19 01            Usage Minimum (1)
29 40            Usage Maximum (64)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 40            Report Count (64)
91 02            Output (0x02)
C0               End Collection
(38 bytes)
0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x19, 0x01, 0x29,
0x40, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x40,
0x81, 0x02, 0x19, 0x01, 0x29, 0x40, 0x15, 0x00, 0x26, 0xff,
0x00, 0x75, 0x08, 0x95, 0x40, 0x91, 0x02, 0xc0,

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x1 (0xc)
  Report Descriptor:
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 02            Report ID (2)
09 E9            Usage (233)
09 EA            Usage (234)
0A 21 02         Usage (545)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(32 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x02, 0x09, 0xe9,
0x09, 0xea, 0x0a, 0x21, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75,
0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81,
0x03, 0xc0,

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x80 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 03            Report ID (3)
09 81            Usage (129)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(27 bytes)
0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x81,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02,
0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x1 (0xff01)
  Report Descriptor:
06 01 FF         Usage Page (65281)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
09 01            Usage (1)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 1B            Report Count (27)
81 02            Input (0x02)
85 04            Report ID (4)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 1B            Report Count (27)
81 02            Input (0x02)
85 06            Report ID (6)
09 04            Usage (4)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 07            Report Count (7)
81 02            Input (0x02)
85 05            Report ID (5)
09 03            Usage (3)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 07            Report Count (7)
B1 02            Feature (0x02)
C0               End Collection
(80 bytes)
0x06, 0x01, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x09,
0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff,
0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08,
0x95, 0x1b, 0x81, 0x02, 0x85, 0x04, 0x09, 0x02, 0x15, 0x00,
0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85,
0x06, 0x09, 0x04, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08,
0x95, 0x07, 0x81, 0x02, 0x85, 0x05, 0x09, 0x03, 0x15, 0x00,
0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0xb1, 0x02, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_00#7&1c54b96&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    0
  Usage (page): 0x6 (0x1)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
19 00            Usage Minimum (0)
29 A4            Usage Maximum (164)
15 00            Logical Minimum (0)
26 A4 00         Logical Maximum (164)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
91 02            Output (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(66 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0,
0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08,
0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00,
0x29, 0xa4, 0x15, 0x00, 0x26, 0xa4, 0x00, 0x75, 0x08, 0x95,
0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15,
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75,
0x03, 0x95, 0x01, 0x91, 0x03, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x1 (0xff02)
  Report Descriptor:
06 02 FF         Usage Page (65282)
09 01            Usage  (1)
A1 01            Collection (Application)
85 07            Report ID (7)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 86            Report Count (134)
B1 02            Feature (0x02)
C0               End Collection
(35 bytes)
0x06, 0x02, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x07, 0x09,
0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff,
0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08,
0x95, 0x86, 0xb1, 0x02, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0xe (0xd)
  Report Descriptor:
05 0D            Usage Page (13)
09 0E            Usage  (14)
A1 01            Collection (Application)
09 22            Usage  (34)
A1 02            Collection (Logical)
85 0B            Report ID (11)
09 52            Usage (82)
15 00            Logical Minimum (0)
25 0A            Logical Maximum (10)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 01            Report Count (1)
B1 02            Feature (0x02)
C0               End Collection
09 22            Usage  (34)
A1 00            Collection (Physical)
85 0C            Report ID (12)
09 57            Usage (87)
09 58            Usage (88)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
B1 02            Feature (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
C0               End Collection
(71 bytes)
0x05, 0x0d, 0x09, 0x0e, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02,
0x85, 0x0b, 0x09, 0x52, 0x15, 0x00, 0x25, 0x0a, 0x35, 0x00,
0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10,
0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0xc0, 0x09, 0x22, 0xa1,
0x00, 0x85, 0x0c, 0x09, 0x57, 0x09, 0x58, 0x15, 0x00, 0x25,
0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65,
0x00, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0xb1, 0x03, 0xc0,
0xc0,

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
85 01            Report ID (1)
05 07            Usage Page (7)
09 69            Usage (105)
09 6A            Usage (106)
09 6B            Usage (107)
09 6C            Usage (108)
09 E3            Usage (227)
09 4C            Usage (76)
09 E2            Usage (226)
09 E0            Usage (224)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
C0               End Collection
(37 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x01, 0x05, 0x07,
0x09, 0x69, 0x09, 0x6a, 0x09, 0x6b, 0x09, 0x6c, 0x09, 0xe3,
0x09, 0x4c, 0x09, 0xe2, 0x09, 0xe0, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0xc0,

unable to open device
@JoergAtGithub Full log from hidtest.exe. Please take not that "HIDP_STATUS_BUFFER_TOO_SMALL" was triggered for the Logitech USB receiver. It is probably a difficult device to get right due to the complexity. <details> <summary> click to expand for the full run log </summary> ``` C:\work\hid\hidapi_test1\windows\x64\Release [windows_report_descriptor_reconstructor ≡]> .\hidtest.exe hidapi test/example tool. Compiled with hidapi version 0.11.0, runtime version 0.11.0. Compile-time version matches runtime version of hidapi. Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&383a3a17&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 02 Report ID (2) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 10 Usage Maximum (16) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 10 Report Count (16) 81 02 Input (0x02) 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 01 F8 Logical Minimum (-2047) 26 FF 07 Logical Maximum (2047) 75 0C Report Size (12) 95 02 Report Count (2) 81 06 Input (0x06) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection (75 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07, 0x75, 0x0c, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&383a3a17&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xc) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 19 01 Usage Minimum (1) 2A 8C 02 Usage Maximum (652) 15 01 Logical Minimum (1) 26 8C 02 Logical Maximum (652) 75 10 Report Size (16) 95 02 Report Count (2) 81 00 Input (0x00) C0 End Collection (25 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x01, 0x2a, 0x8c, 0x02, 0x15, 0x01, 0x26, 0x8c, 0x02, 0x75, 0x10, 0x95, 0x02, 0x81, 0x00, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&383a3a17&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x80 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 04 Report ID (4) 09 83 Usage (131) 09 81 Usage (129) 09 82 Usage (130) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 60 Input (0x60) C0 End Collection (25 bytes) 0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x04, 0x09, 0x83, 0x09, 0x81, 0x09, 0x82, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x60, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&383a3a17&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 10 Report ID (16) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection (34 bytes) 0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x10, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x00, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x00, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 01 Report ID (1) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 03 Report Count (3) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection (69 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x01, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 8087 0a1e path: \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 200 Interface: -1 Usage (page): 0xc (0x1) Report Descriptor: 05 01 Usage Page (1) 09 0C Usage (12) A1 01 Collection (Application) 85 08 Report ID (8) 09 C6 Usage (198) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (27 bytes) 0x05, 0x01, 0x09, 0x0c, 0xa1, 0x01, 0x85, 0x08, 0x09, 0xc6, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 044e 1212 path: \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 85 07 Report ID (7) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 75 Usage Maximum (117) 15 00 Logical Minimum (0) 25 75 Logical Maximum (117) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) C0 End Collection (45 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x07, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 0x29, 0x75, 0x15, 0x00, 0x25, 0x75, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&383a3a17&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 02 Usage (2) A1 01 Collection (Application) 85 11 Report ID (17) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection (34 bytes) 0x06, 0x00, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x11, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x00, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x00, 0xc0, Device Found type: 8087 0a1e path: \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 200 Interface: -1 Usage (page): 0xd (0x1) Report Descriptor: 05 01 Usage Page (1) 09 0D Usage (13) A1 01 Collection (Application) 09 0D Usage (13) A1 02 Collection (Logical) 85 1C Report ID (28) 09 81 Usage (129) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 09 CB Usage (203) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 02 Feature (0x02) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection (50 bytes) 0x05, 0x01, 0x09, 0x0d, 0xa1, 0x01, 0x09, 0x0d, 0xa1, 0x02, 0x85, 0x1c, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0xcb, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x02, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0, Device Found type: 044e 1212 path: \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 06 Report ID (6) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 00 FE Logical Minimum (-512) 26 00 02 Logical Maximum (512) 75 10 Report Size (16) 95 02 Report Count (2) 81 06 Input (0x06) C0 End Collection C0 End Collection (54 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x06, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x00, 0xfe, 0x26, 0x00, 0x02, 0x75, 0x10, 0x95, 0x02, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x5 (0xd) Report Descriptor: 05 0D Usage Page (13) 09 05 Usage (5) A1 01 Collection (Application) 09 22 Usage (34) A1 02 Collection (Logical) 85 08 Report ID (8) 09 47 Usage (71) 09 42 Usage (66) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 02 Input (0x02) 09 51 Usage (81) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 75 03 Report Size (3) 95 01 Report Count (1) 81 02 Input (0x02) 75 03 Report Size (3) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 15 00 Logical Minimum (0) 26 AF 04 Logical Maximum (1199) 35 00 Physical Minimum (0) 46 E8 03 Physical Maximum (1000) 55 0E Unit Exponent (14) 65 11 Unit (17) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 31 Usage (49) 15 00 Logical Minimum (0) 26 7B 02 Logical Maximum (635) 35 00 Physical Minimum (0) 46 12 02 Physical Maximum (530) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) C0 End Collection 05 0D Usage Page (13) 09 56 Usage (86) 15 00 Logical Minimum (0) 27 FF FF 00 00 Logical Maximum (65535) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 54 Usage (84) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) 05 09 Usage Page (9) 09 02 Usage (2) 09 03 Usage (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) 81 02 Input (0x02) 85 09 Report ID (9) 05 0D Usage Page (13) 09 55 Usage (85) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 01 Report Count (1) B1 02 Feature (0x02) 85 0A Report ID (10) 06 00 FF Usage Page (65280) 09 C5 Usage (197) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 96 00 01 Report Count (256) B1 02 Feature (0x02) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (204 bytes) 0x05, 0x0d, 0x09, 0x05, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02, 0x85, 0x08, 0x09, 0x47, 0x09, 0x42, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x02, 0x09, 0x51, 0x15, 0x00, 0x25, 0x05, 0x75, 0x03, 0x95, 0x01, 0x81, 0x02, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x15, 0x00, 0x26, 0xaf, 0x04, 0x35, 0x00, 0x46, 0xe8, 0x03, 0x55, 0x0e, 0x65, 0x11, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x31, 0x15, 0x00, 0x26, 0x7b, 0x02, 0x35, 0x00, 0x46, 0x12, 0x02, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0xc0, 0x05, 0x0d, 0x09, 0x56, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x54, 0x15, 0x00, 0x25, 0x05, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x05, 0x09, 0x09, 0x02, 0x09, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0x81, 0x02, 0x85, 0x09, 0x05, 0x0d, 0x09, 0x55, 0x15, 0x00, 0x25, 0x05, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0x85, 0x0a, 0x06, 0x00, 0xff, 0x09, 0xc5, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x96, 0x00, 0x01, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 04d8 0033 path: \\?\hid#vid_04d8&pid_0033#e&bd5b18b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: pk2new Manufacturer: Microchip Technology Inc. Product: PICkit 2 Microcontroller Programmer Release: 2 Interface: -1 Usage (page): 0x1 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 40 Report Count (64) 81 02 Input (0x02) 19 01 Usage Minimum (1) 29 40 Usage Maximum (64) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 40 Report Count (64) 91 02 Output (0x02) C0 End Collection (38 bytes) 0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x19, 0x01, 0x29, 0x40, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x40, 0x81, 0x02, 0x19, 0x01, 0x29, 0x40, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x40, 0x91, 0x02, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 02 Report ID (2) 09 E9 Usage (233) 09 EA Usage (234) 0A 21 02 Usage (545) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (32 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x02, 0x09, 0xe9, 0x09, 0xea, 0x0a, 0x21, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x80 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 03 Report ID (3) 09 81 Usage (129) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (27 bytes) 0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x1 (0xff01) Report Descriptor: 06 01 FF Usage Page (65281) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 09 01 Usage (1) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 1B Report Count (27) 81 02 Input (0x02) 85 04 Report ID (4) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 1B Report Count (27) 81 02 Input (0x02) 85 06 Report ID (6) 09 04 Usage (4) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 07 Report Count (7) 81 02 Input (0x02) 85 05 Report ID (5) 09 03 Usage (3) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 07 Report Count (7) B1 02 Feature (0x02) C0 End Collection (80 bytes) 0x06, 0x01, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85, 0x04, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85, 0x06, 0x09, 0x04, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0x81, 0x02, 0x85, 0x05, 0x09, 0x03, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0xb1, 0x02, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_00#7&1c54b96&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 0 Usage (page): 0x6 (0x1) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 A4 Usage Maximum (164) 15 00 Logical Minimum (0) 26 A4 00 Logical Maximum (164) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 91 02 Output (0x02) 75 03 Report Size (3) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (66 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 0x29, 0xa4, 0x15, 0x00, 0x26, 0xa4, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75, 0x03, 0x95, 0x01, 0x91, 0x03, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x1 (0xff02) Report Descriptor: 06 02 FF Usage Page (65282) 09 01 Usage (1) A1 01 Collection (Application) 85 07 Report ID (7) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 86 Report Count (134) B1 02 Feature (0x02) C0 End Collection (35 bytes) 0x06, 0x02, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x07, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x86, 0xb1, 0x02, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0xe (0xd) Report Descriptor: 05 0D Usage Page (13) 09 0E Usage (14) A1 01 Collection (Application) 09 22 Usage (34) A1 02 Collection (Logical) 85 0B Report ID (11) 09 52 Usage (82) 15 00 Logical Minimum (0) 25 0A Logical Maximum (10) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 01 Report Count (1) B1 02 Feature (0x02) C0 End Collection 09 22 Usage (34) A1 00 Collection (Physical) 85 0C Report ID (12) 09 57 Usage (87) 09 58 Usage (88) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) B1 02 Feature (0x02) 75 06 Report Size (6) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection (71 bytes) 0x05, 0x0d, 0x09, 0x0e, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02, 0x85, 0x0b, 0x09, 0x52, 0x15, 0x00, 0x25, 0x0a, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0xc0, 0x09, 0x22, 0xa1, 0x00, 0x85, 0x0c, 0x09, 0x57, 0x09, 0x58, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 85 01 Report ID (1) 05 07 Usage Page (7) 09 69 Usage (105) 09 6A Usage (106) 09 6B Usage (107) 09 6C Usage (108) 09 E3 Usage (227) 09 4C Usage (76) 09 E2 Usage (226) 09 E0 Usage (224) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) C0 End Collection (37 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x01, 0x05, 0x07, 0x09, 0x69, 0x09, 0x6a, 0x09, 0x6b, 0x09, 0x6c, 0x09, 0xe3, 0x09, 0x4c, 0x09, 0xe2, 0x09, 0xe0, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0xc0, unable to open device ``` </details>
mcuee commented 2021-07-17 20:37:01 -05:00 (Migrated from github.com)

Just FYI as well that I also tested with a bluetooth mouse and here is the output from #262. I will need to use my Mac Mini M1 to dump the original HID report descriptor. I do not know how to do it under Windows.


Device Found
  type: 046d b010
  path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col01#8&1cf1c1b9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 34885dab0c12
  Manufacturer: Logitech
  Product:      Logitech Bluetooth Wireless Mouse
  Release:      0
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 02            Report ID (2)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 08            Usage Maximum (8)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 01 F8         Logical Minimum (-2047)
26 FF 07         Logical Maximum (2047)
75 0C            Report Size (12)
95 02            Report Count (2)
81 06            Input (0x06)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(75 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x08, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x05, 0x01,
0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07,
0x75, 0x0c, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81,
0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c,
0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95,
0x01, 0x81, 0x06, 0xc0, 0xc0,

Device Found
  type: 046d b010
  path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col02#8&1cf1c1b9&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 34885dab0c12
  Manufacturer: Logitech
  Product:      Logitech Bluetooth Wireless Mouse
  Release:      0
  Interface:    -1
  Usage (page): 0x1 (0xc)
  Report Descriptor:
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
05 06            Usage Page (6)
09 20            Usage (32)
15 00            Logical Minimum (0)
25 64            Logical Maximum (100)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
C0               End Collection
(23 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x05, 0x06,
0x09, 0x20, 0x15, 0x00, 0x25, 0x64, 0x75, 0x08, 0x95, 0x01,
0x81, 0x02, 0xc0,

Device Found
  type: 046d b010
  path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col03#8&1cf1c1b9&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 34885dab0c12
  Manufacturer: Logitech
  Product:      Logitech Bluetooth Wireless Mouse
  Release:      0
  Interface:    -1
  Usage (page): 0x1 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 10            Report ID (16)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
(34 bytes)
0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x10, 0x09,
0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81,
0x00, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
0x01, 0x91, 0x00, 0xc0,

Device Found
  type: 046d b010
  path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col04#8&1cf1c1b9&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 34885dab0c12
  Manufacturer: Logitech
  Product:      Logitech Bluetooth Wireless Mouse
  Release:      0
  Interface:    -1
  Usage (page): 0x2 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
09 02            Usage  (2)
A1 01            Collection (Application)
85 11            Report ID (17)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
(34 bytes)
0x06, 0x00, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x11, 0x09,
0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81,
0x00, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
0x01, 0x91, 0x00, 0xc0,

Device Found
  type: 046d b010
  path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col05#8&1cf1c1b9&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number: 34885dab0c12
  Manufacturer: Logitech
  Product:      Logitech Bluetooth Wireless Mouse
  Release:      0
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
85 04            Report ID (4)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
19 00            Usage Minimum (0)
29 FF            Usage Maximum (255)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
91 02            Output (0x02)
Report Size (-8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 2F            Report Size (47)
95 01            Report Count (1)
81 03            Input (0x03) Padding
Report Size (-41)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 01            Report Size (1)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 03            Report Size (3)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(82 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x04, 0x05, 0x07,
0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x08, 0x81, 0x02, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00,
0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05,
0x08, 0x19, 0x01, 0x29, 0x05, 0x15, 0x00, 0x25, 0x01, 0x75,
0x01, 0x95, 0x05, 0x91, 0x02, 0x95, 0x01, 0x81, 0x03, 0x75,
0x2f, 0x95, 0x01, 0x81, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75,
0x01, 0x95, 0x01, 0x81, 0x03, 0x75, 0x03, 0x95, 0x01, 0x91,
0x03, 0xc0,

Device Found
  type: 046d b010
  path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col06#8&1cf1c1b9&0&0005#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 34885dab0c12
  Manufacturer: Logitech
  Product:      Logitech Bluetooth Wireless Mouse
  Release:      0
  Interface:    -1
  Usage (page): 0x1 (0xc)
  Report Descriptor:
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 05            Report ID (5)
0A 25 02         Usage (549)
0A 24 02         Usage (548)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 02            Input (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(31 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x05, 0x0a, 0x25,
0x02, 0x0a, 0x24, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x02, 0x81, 0x02, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03,
0xc0,
Just FYI as well that I also tested with a bluetooth mouse and here is the output from #262. I will need to use my Mac Mini M1 to dump the original HID report descriptor. I do not know how to do it under Windows. ``` Device Found type: 046d b010 path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col01#8&1cf1c1b9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 34885dab0c12 Manufacturer: Logitech Product: Logitech Bluetooth Wireless Mouse Release: 0 Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 02 Report ID (2) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 08 Usage Maximum (8) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 01 F8 Logical Minimum (-2047) 26 FF 07 Logical Maximum (2047) 75 0C Report Size (12) 95 02 Report Count (2) 81 06 Input (0x06) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection (75 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x08, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07, 0x75, 0x0c, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 046d b010 path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col02#8&1cf1c1b9&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 34885dab0c12 Manufacturer: Logitech Product: Logitech Bluetooth Wireless Mouse Release: 0 Interface: -1 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 05 06 Usage Page (6) 09 20 Usage (32) 15 00 Logical Minimum (0) 25 64 Logical Maximum (100) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) C0 End Collection (23 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x05, 0x06, 0x09, 0x20, 0x15, 0x00, 0x25, 0x64, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0xc0, Device Found type: 046d b010 path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col03#8&1cf1c1b9&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 34885dab0c12 Manufacturer: Logitech Product: Logitech Bluetooth Wireless Mouse Release: 0 Interface: -1 Usage (page): 0x1 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 10 Report ID (16) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection (34 bytes) 0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x10, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x00, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x00, 0xc0, Device Found type: 046d b010 path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col04#8&1cf1c1b9&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 34885dab0c12 Manufacturer: Logitech Product: Logitech Bluetooth Wireless Mouse Release: 0 Interface: -1 Usage (page): 0x2 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 02 Usage (2) A1 01 Collection (Application) 85 11 Report ID (17) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection (34 bytes) 0x06, 0x00, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x11, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x00, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x00, 0xc0, Device Found type: 046d b010 path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col05#8&1cf1c1b9&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: 34885dab0c12 Manufacturer: Logitech Product: Logitech Bluetooth Wireless Mouse Release: 0 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 85 04 Report ID (4) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 19 00 Usage Minimum (0) 29 FF Usage Maximum (255) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 91 02 Output (0x02) Report Size (-8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 2F Report Size (47) 95 01 Report Count (1) 81 03 Input (0x03) Padding Report Size (-41) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 01 Report Size (1) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 03 Report Size (3) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (82 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x04, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x95, 0x01, 0x81, 0x03, 0x75, 0x2f, 0x95, 0x01, 0x81, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x01, 0x95, 0x01, 0x81, 0x03, 0x75, 0x03, 0x95, 0x01, 0x91, 0x03, 0xc0, Device Found type: 046d b010 path: \\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col06#8&1cf1c1b9&0&0005#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 34885dab0c12 Manufacturer: Logitech Product: Logitech Bluetooth Wireless Mouse Release: 0 Interface: -1 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 05 Report ID (5) 0A 25 02 Usage (549) 0A 24 02 Usage (548) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 02 Input (0x02) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (31 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x05, 0x0a, 0x25, 0x02, 0x0a, 0x24, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x02, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0xc0, ```
mcuee commented 2021-07-17 20:38:48 -05:00 (Migrated from github.com)

Oops I click the wrong button and accidently closed the pull request so I just reopened it.

Oops I click the wrong button and accidently closed the pull request so I just reopened it.
mcuee commented 2021-07-17 22:32:39 -05:00 (Migrated from github.com)

macOS output


mac-hid-dump on  main ❯ ./mac-hid-dump 
mac-hid-dump:
...
046D B010: Unknown - Bluetooth Mouse M557
DESCRIPTOR:
  05  01  09  02  a1  01  85  02  09  01  a1  00  05  09  19  01 
  29  08  15  00  25  01  75  01  95  08  81  02  05  01  09  30 
  09  31  16  01  f8  26  ff  07  75  0c  95  02  81  06  09  38 
  15  81  25  7f  75  08  95  01  81  06  05  0c  0a  38  02  75 
  08  95  01  81  06  c0  c0  05  0c  09  01  a1  01  85  03  05 
  06  09  20  15  00  26  64  00  75  08  95  01  81  02  c0  06 
  00  ff  09  01  a1  01  85  10  75  08  95  06  15  00  26  ff 
  00  09  01  81  00  09  01  91  00  c0  06  00  ff  09  02  a1 
  01  85  11  75  08  95  13  15  00  26  ff  00  09  02  81  00 
  09  02  91  00  c0  05  01  09  06  a1  01  85  04  75  01  95 
  08  05  07  19  e0  29  e7  15  00  25  01  81  02  95  01  75 
  08  81  03  95  05  75  01  05  08  19  01  29  05  91  02  95 
  01  75  03  91  03  95  06  75  08  15  00  26  ff  00  05  07 
  19  00  29  ff  81  00  c0  05  0c  09  01  a1  01  85  05  15 
  00  25  01  75  01  95  02  0a  25  02  0a  24  02  81  02  95 
  01  75  06  81  03  c0  
  (246 bytes)

Parser output:

0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x02,        // Usage (Mouse)
0xA1, 0x01,        // Collection (Application)
0x85, 0x02,        //   Report ID (2)
0x09, 0x01,        //   Usage (Pointer)
0xA1, 0x00,        //   Collection (Physical)
0x05, 0x09,        //     Usage Page (Button)
0x19, 0x01,        //     Usage Minimum (0x01)
0x29, 0x08,        //     Usage Maximum (0x08)
0x15, 0x00,        //     Logical Minimum (0)
0x25, 0x01,        //     Logical Maximum (1)
0x75, 0x01,        //     Report Size (1)
0x95, 0x08,        //     Report Count (8)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x01,        //     Usage Page (Generic Desktop Ctrls)
0x09, 0x30,        //     Usage (X)
0x09, 0x31,        //     Usage (Y)
0x16, 0x01, 0xF8,  //     Logical Minimum (-2047)
0x26, 0xFF, 0x07,  //     Logical Maximum (2047)
0x75, 0x0C,        //     Report Size (12)
0x95, 0x02,        //     Report Count (2)
0x81, 0x06,        //     Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x38,        //     Usage (Wheel)
0x15, 0x81,        //     Logical Minimum (-127)
0x25, 0x7F,        //     Logical Maximum (127)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x81, 0x06,        //     Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x0C,        //     Usage Page (Consumer)
0x0A, 0x38, 0x02,  //     Usage (AC Pan)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x81, 0x06,        //     Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              //   End Collection
0xC0,              // End Collection
0x05, 0x0C,        // Usage Page (Consumer)
0x09, 0x01,        // Usage (Consumer Control)
0xA1, 0x01,        // Collection (Application)
0x85, 0x03,        //   Report ID (3)
0x05, 0x06,        //   Usage Page (Generic Dev Ctrls)
0x09, 0x20,        //   Usage (Battery Strength)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0x64, 0x00,  //   Logical Maximum (100)
0x75, 0x08,        //   Report Size (8)
0x95, 0x01,        //   Report Count (1)
0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              // End Collection
0x06, 0x00, 0xFF,  // Usage Page (Vendor Defined 0xFF00)
0x09, 0x01,        // Usage (0x01)
0xA1, 0x01,        // Collection (Application)
0x85, 0x10,        //   Report ID (16)
0x75, 0x08,        //   Report Size (8)
0x95, 0x06,        //   Report Count (6)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x09, 0x01,        //   Usage (0x01)
0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x01,        //   Usage (0x01)
0x91, 0x00,        //   Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              // End Collection
0x06, 0x00, 0xFF,  // Usage Page (Vendor Defined 0xFF00)
0x09, 0x02,        // Usage (0x02)
0xA1, 0x01,        // Collection (Application)
0x85, 0x11,        //   Report ID (17)
0x75, 0x08,        //   Report Size (8)
0x95, 0x13,        //   Report Count (19)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x09, 0x02,        //   Usage (0x02)
0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x02,        //   Usage (0x02)
0x91, 0x00,        //   Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              // End Collection
0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x06,        // Usage (Keyboard)
0xA1, 0x01,        // Collection (Application)
0x85, 0x04,        //   Report ID (4)
0x75, 0x01,        //   Report Size (1)
0x95, 0x08,        //   Report Count (8)
0x05, 0x07,        //   Usage Page (Kbrd/Keypad)
0x19, 0xE0,        //   Usage Minimum (0xE0)
0x29, 0xE7,        //   Usage Maximum (0xE7)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0x01,        //   Logical Maximum (1)
0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x01,        //   Report Count (1)
0x75, 0x08,        //   Report Size (8)
0x81, 0x03,        //   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x05,        //   Report Count (5)
0x75, 0x01,        //   Report Size (1)
0x05, 0x08,        //   Usage Page (LEDs)
0x19, 0x01,        //   Usage Minimum (Num Lock)
0x29, 0x05,        //   Usage Maximum (Kana)
0x91, 0x02,        //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x95, 0x01,        //   Report Count (1)
0x75, 0x03,        //   Report Size (3)
0x91, 0x03,        //   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x95, 0x06,        //   Report Count (6)
0x75, 0x08,        //   Report Size (8)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x05, 0x07,        //   Usage Page (Kbrd/Keypad)
0x19, 0x00,        //   Usage Minimum (0x00)
0x29, 0xFF,        //   Usage Maximum (0xFF)
0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              // End Collection
0x05, 0x0C,        // Usage Page (Consumer)
0x09, 0x01,        // Usage (Consumer Control)
0xA1, 0x01,        // Collection (Application)
0x85, 0x05,        //   Report ID (5)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0x01,        //   Logical Maximum (1)
0x75, 0x01,        //   Report Size (1)
0x95, 0x02,        //   Report Count (2)
0x0A, 0x25, 0x02,  //   Usage (AC Forward)
0x0A, 0x24, 0x02,  //   Usage (AC Back)
0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x01,        //   Report Count (1)
0x75, 0x06,        //   Report Size (6)
0x81, 0x03,        //   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              // End Collection

// 246 bytes
macOS output ``` mac-hid-dump on  main ❯ ./mac-hid-dump mac-hid-dump: ... 046D B010: Unknown - Bluetooth Mouse M557 DESCRIPTOR: 05 01 09 02 a1 01 85 02 09 01 a1 00 05 09 19 01 29 08 15 00 25 01 75 01 95 08 81 02 05 01 09 30 09 31 16 01 f8 26 ff 07 75 0c 95 02 81 06 09 38 15 81 25 7f 75 08 95 01 81 06 05 0c 0a 38 02 75 08 95 01 81 06 c0 c0 05 0c 09 01 a1 01 85 03 05 06 09 20 15 00 26 64 00 75 08 95 01 81 02 c0 06 00 ff 09 01 a1 01 85 10 75 08 95 06 15 00 26 ff 00 09 01 81 00 09 01 91 00 c0 06 00 ff 09 02 a1 01 85 11 75 08 95 13 15 00 26 ff 00 09 02 81 00 09 02 91 00 c0 05 01 09 06 a1 01 85 04 75 01 95 08 05 07 19 e0 29 e7 15 00 25 01 81 02 95 01 75 08 81 03 95 05 75 01 05 08 19 01 29 05 91 02 95 01 75 03 91 03 95 06 75 08 15 00 26 ff 00 05 07 19 00 29 ff 81 00 c0 05 0c 09 01 a1 01 85 05 15 00 25 01 75 01 95 02 0a 25 02 0a 24 02 81 02 95 01 75 06 81 03 c0 (246 bytes) ``` Parser output: ``` 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x02, // Usage (Mouse) 0xA1, 0x01, // Collection (Application) 0x85, 0x02, // Report ID (2) 0x09, 0x01, // Usage (Pointer) 0xA1, 0x00, // Collection (Physical) 0x05, 0x09, // Usage Page (Button) 0x19, 0x01, // Usage Minimum (0x01) 0x29, 0x08, // Usage Maximum (0x08) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x75, 0x01, // Report Size (1) 0x95, 0x08, // Report Count (8) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x30, // Usage (X) 0x09, 0x31, // Usage (Y) 0x16, 0x01, 0xF8, // Logical Minimum (-2047) 0x26, 0xFF, 0x07, // Logical Maximum (2047) 0x75, 0x0C, // Report Size (12) 0x95, 0x02, // Report Count (2) 0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) 0x09, 0x38, // Usage (Wheel) 0x15, 0x81, // Logical Minimum (-127) 0x25, 0x7F, // Logical Maximum (127) 0x75, 0x08, // Report Size (8) 0x95, 0x01, // Report Count (1) 0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) 0x05, 0x0C, // Usage Page (Consumer) 0x0A, 0x38, 0x02, // Usage (AC Pan) 0x75, 0x08, // Report Size (8) 0x95, 0x01, // Report Count (1) 0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) 0xC0, // End Collection 0xC0, // End Collection 0x05, 0x0C, // Usage Page (Consumer) 0x09, 0x01, // Usage (Consumer Control) 0xA1, 0x01, // Collection (Application) 0x85, 0x03, // Report ID (3) 0x05, 0x06, // Usage Page (Generic Dev Ctrls) 0x09, 0x20, // Usage (Battery Strength) 0x15, 0x00, // Logical Minimum (0) 0x26, 0x64, 0x00, // Logical Maximum (100) 0x75, 0x08, // Report Size (8) 0x95, 0x01, // Report Count (1) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0xC0, // End Collection 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 0x09, 0x01, // Usage (0x01) 0xA1, 0x01, // Collection (Application) 0x85, 0x10, // Report ID (16) 0x75, 0x08, // Report Size (8) 0x95, 0x06, // Report Count (6) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x09, 0x01, // Usage (0x01) 0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x09, 0x01, // Usage (0x01) 0x91, 0x00, // Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 0x09, 0x02, // Usage (0x02) 0xA1, 0x01, // Collection (Application) 0x85, 0x11, // Report ID (17) 0x75, 0x08, // Report Size (8) 0x95, 0x13, // Report Count (19) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x09, 0x02, // Usage (0x02) 0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x09, 0x02, // Usage (0x02) 0x91, 0x00, // Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0xC0, // End Collection 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 0x09, 0x06, // Usage (Keyboard) 0xA1, 0x01, // Collection (Application) 0x85, 0x04, // Report ID (4) 0x75, 0x01, // Report Size (1) 0x95, 0x08, // Report Count (8) 0x05, 0x07, // Usage Page (Kbrd/Keypad) 0x19, 0xE0, // Usage Minimum (0xE0) 0x29, 0xE7, // Usage Maximum (0xE7) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x95, 0x01, // Report Count (1) 0x75, 0x08, // Report Size (8) 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x95, 0x05, // Report Count (5) 0x75, 0x01, // Report Size (1) 0x05, 0x08, // Usage Page (LEDs) 0x19, 0x01, // Usage Minimum (Num Lock) 0x29, 0x05, // Usage Maximum (Kana) 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x95, 0x01, // Report Count (1) 0x75, 0x03, // Report Size (3) 0x91, 0x03, // Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 0x95, 0x06, // Report Count (6) 0x75, 0x08, // Report Size (8) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x05, 0x07, // Usage Page (Kbrd/Keypad) 0x19, 0x00, // Usage Minimum (0x00) 0x29, 0xFF, // Usage Maximum (0xFF) 0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) 0xC0, // End Collection 0x05, 0x0C, // Usage Page (Consumer) 0x09, 0x01, // Usage (Consumer Control) 0xA1, 0x01, // Collection (Application) 0x85, 0x05, // Report ID (5) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x75, 0x01, // Report Size (1) 0x95, 0x02, // Report Count (2) 0x0A, 0x25, 0x02, // Usage (AC Forward) 0x0A, 0x24, 0x02, // Usage (AC Back) 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0x95, 0x01, // Report Count (1) 0x75, 0x06, // Report Size (6) 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 0xC0, // End Collection // 246 bytes ```
mcuee commented 2021-07-18 03:05:50 -05:00 (Migrated from github.com)

The following device may be a difficult one as well -- Microsoft Nano Receiver v1.0.

mac-hid-dump on  main ❯ ./mac-hid-dump 
mac-hid-dump:
045E 0773: Microsoft - Microsoft? Nano Transceiver v1.0
DESCRIPTOR:
  05  0c  09  01  a1  01  85  20  06  00  ff  15  00  26  ff  00 
  75  08  95  12  0a  0a  fa  b1  02  85  21  06  00  ff  15  00 
  25  01  75  01  95  10  1a  10  fa  2a  1f  fa  81  02  85  28 
  06  00  ff  1a  10  fa  2a  1f  fa  b1  02  85  22  06  00  ff 
  15  00  26  ff  00  75  08  95  1a  0a  0a  fa  b1  02  85  23 
  06  00  ff  0a  0a  fa  b1  02  85  24  06  00  ff  95  1f  0a 
  0a  fa  b1  02  85  25  06  00  ff  0a  0a  fa  b1  02  85  26 
  06  00  ff  0a  0a  fa  b1  02  85  27  06  00  ff  0a  0a  fa 
  81  02  85  14  06  00  ff  15  00  25  03  75  02  95  01  0a 
  01  fe  81  02  75  06  81  01  85  04  06  00  ff  15  00  25 
  03  75  02  95  01  0a  01  fe  81  02  75  06  81  01  c0  05 
  0c  09  01  a1  01  85  07  05  0c  19  00  2a  ff  03  95  01 
  75  10  15  00  26  ff  03  81  00  05  07  19  00  29  ff  75 
  08  26  ff  00  81  00  81  01  06  00  ff  0a  03  fe  0a  04 
  fe  75  01  95  02  25  01  81  02  0a  05  ff  95  01  75  05 
  25  1f  81  02  75  01  81  01  1a  01  fd  2a  ff  fd  15  01 
  26  ff  00  75  08  81  00  0a  02  ff  26  ff  00  15  00  81 
  02  c0  06  bc  ff  09  88  a1  01  85  08  19  01  29  ff  15 
  01  26  ff  00  95  01  75  08  81  00  c0  05  01  09  80  a1 
  01  85  03  19  00  29  ff  15  00  26  ff  00  81  00  c0  
  (319 bytes)

045E 0773: Microsoft - Microsoft? Nano Transceiver v1.0
DESCRIPTOR:
  05  01  09  02  a1  01  05  01  09  02  a1  02  85  1a  09  01 
  a1  00  05  09  19  01  29  05  95  05  75  01  15  00  25  01 
  81  02  75  03  95  01  81  01  05  01  09  30  09  31  95  02 
  75  10  16  01  80  26  ff  7f  81  06  a1  02  85  12  09  48 
  95  01  75  02  15  00  25  01  35  01  45  04  b1  02  85  1a 
  09  38  35  00  45  00  95  01  75  10  16  01  80  26  ff  7f 
  81  06  c0  a1  02  85  12  09  48  75  02  15  00  25  01  35 
  01  45  04  b1  02  35  00  45  00  75  04  b1  01  85  1a  05 
  0c  95  01  75  10  16  01  80  26  ff  7f  0a  38  02  81  06 
  c0  c0  c0  c0  05  0c  09  01  a1  01  05  01  09  02  a1  02 
  85  1f  05  0c  0a  38  02  95  01  75  10  16  01  80  26  ff 
  7f  81  06  85  17  06  00  ff  0a  06  ff  0a  0f  ff  15  00 
  25  01  35  01  45  04  95  02  75  02  b1  02  0a  04  ff  35 
  00  45  00  95  01  75  01  b1  02  75  03  b1  01  c0  85  16 
  05  0c  19  00  2a  ff  03  95  01  75  10  15  00  26  ff  03 
  81  00  06  00  ff  1a  01  fd  2a  ff  fd  15  01  26  ff  00 
  75  08  81  00  81  01  85  1c  06  00  ff  0a  25  ff  15  00 
  25  04  75  08  95  01  81  02  0a  26  ff  75  10  15  00  27 
  ff  ff  00  00  81  02  c0  
  (295 bytes)

045E 0773: Microsoft - Microsoft? Nano Transceiver v1.0
DESCRIPTOR:
  05  01  09  06  a1  01  05  08  19  01  29  03  15  00  25  01 
  75  01  95  03  91  02  95  05  91  01  05  07  1a  e0  00  2a 
  e7  00  95  08  81  02  75  08  95  01  81  01  19  00  2a  91 
  00  26  ff  00  95  06  81  00  c0  
  (57 bytes)

Click to expand for pull request 262 output
Device Found
  type: 045e 0773
  path: \\?\hid#vid_045e&pid_0773&mi_00#8&385f2df4&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer:
  Product:
  Release:      674
  Interface:    0
  Usage (page): 0x6 (0x1)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
19 00            Usage Minimum (0)
29 91            Usage Maximum (145)
15 00            Logical Minimum (0)
26 91 00         Logical Maximum (145)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
91 02            Output (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(66 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0,
0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08,
0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00,
0x29, 0x91, 0x15, 0x00, 0x26, 0x91, 0x00, 0x75, 0x08, 0x95,
0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15,
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x75,
0x05, 0x95, 0x01, 0x91, 0x03, 0xc0,

Device Found
  type: 045e 0773
  path: \\?\hid#vid_045e&pid_0773&mi_01&col01#8&209ba1af&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      674
  Interface:    1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 02            Usage  (2)
A1 02            Collection (Logical)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 1A            Report ID (26)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
81 02            Input (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 01 80         Logical Minimum (-32767)
26 FF 7F         Logical Maximum (32767)
75 10            Report Size (16)
95 02            Report Count (2)
81 06            Input (0x06)
09 00            Usage  (0)
A1 02            Collection (Logical)
09 38            Usage (56)
16 01 80         Logical Minimum (-32767)
26 FF 7F         Logical Maximum (32767)
75 10            Report Size (16)
95 01            Report Count (1)
81 06            Input (0x06)
85 12            Report ID (18)
09 48            Usage (72)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
35 01            Physical Minimum (1)
45 04            Physical Maximum (4)
75 02            Report Size (2)
95 01            Report Count (1)
B1 02            Feature (0x02)
C0               End Collection
09 00            Usage  (0)
A1 02            Collection (Logical)
85 1A            Report ID (26)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
16 01 80         Logical Minimum (-32767)
26 FF 7F         Logical Maximum (32767)
35 00            Physical Minimum (0)
45 00            Physical Maximum (0)
75 10            Report Size (16)
95 01            Report Count (1)
81 06            Input (0x06)
85 12            Report ID (18)
05 01            Usage Page (1)
09 48            Usage (72)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
35 01            Physical Minimum (1)
45 04            Physical Maximum (4)
75 02            Report Size (2)
95 01            Report Count (1)
B1 02            Feature (0x02)
75 04            Report Size (4)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
C0               End Collection
C0               End Collection
C0               End Collection
(150 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x02, 0xa1, 0x02,
0x09, 0x01, 0xa1, 0x00, 0x85, 0x1a, 0x05, 0x09, 0x19, 0x01,
0x29, 0x05, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05,
0x81, 0x02, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01,
0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0x80, 0x26, 0xff, 0x7f,
0x75, 0x10, 0x95, 0x02, 0x81, 0x06, 0x09, 0x00, 0xa1, 0x02,
0x09, 0x38, 0x16, 0x01, 0x80, 0x26, 0xff, 0x7f, 0x75, 0x10,
0x95, 0x01, 0x81, 0x06, 0x85, 0x12, 0x09, 0x48, 0x15, 0x00,
0x25, 0x01, 0x35, 0x01, 0x45, 0x04, 0x75, 0x02, 0x95, 0x01,
0xb1, 0x02, 0xc0, 0x09, 0x00, 0xa1, 0x02, 0x85, 0x1a, 0x05,
0x0c, 0x0a, 0x38, 0x02, 0x16, 0x01, 0x80, 0x26, 0xff, 0x7f,
0x35, 0x00, 0x45, 0x00, 0x75, 0x10, 0x95, 0x01, 0x81, 0x06,
0x85, 0x12, 0x05, 0x01, 0x09, 0x48, 0x15, 0x00, 0x25, 0x01,
0x35, 0x01, 0x45, 0x04, 0x75, 0x02, 0x95, 0x01, 0xb1, 0x02,
0x75, 0x04, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0, 0xc0, 0xc0,

Device Found
  type: 045e 0773
  path: \\?\hid#vid_045e&pid_0773&mi_01&col02#8&209ba1af&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      674
  Interface:    1
  Usage (page): 0x1 (0xc)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
05 01            Usage Page (1)
09 02            Usage  (2)
A1 02            Collection (Logical)
85 1F            Report ID (31)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
16 01 80         Logical Minimum (-32767)
26 FF 7F         Logical Maximum (32767)
75 10            Report Size (16)
95 01            Report Count (1)
81 06            Input (0x06)
85 17            Report ID (23)
06 00 FF         Usage Page (65280)
0A 06 FF         Usage (65286)
0A 0F FF         Usage (65295)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
35 01            Physical Minimum (1)
45 04            Physical Maximum (4)
75 02            Report Size (2)
95 02            Report Count (2)
B1 02            Feature (0x02)
0A 04 FF         Usage (65284)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
35 00            Physical Minimum (0)
45 00            Physical Maximum (0)
B1 02            Feature (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
85 16            Report ID (22)
05 0C            Usage Page (12)
19 00            Usage Minimum (0)
2A FF 03         Usage Maximum (1023)
15 00            Logical Minimum (0)
26 FF 03         Logical Maximum (1023)
75 0A            Report Size (10)
95 01            Report Count (1)
81 00            Input (0x00)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
06 00 FF         Usage Page (65280)
1A 01 FD         Usage Minimum (64769)
2A FF FD         Usage Maximum (65023)
17 01 FD 00 00   Logical Minimum (64769)
27 FF FD 00 00   Logical Maximum (65023)
75 10            Report Size (16)
95 01            Report Count (1)
81 00            Input (0x00)
85 1C            Report ID (28)
0A 25 FF         Usage (65317)
15 00            Logical Minimum (0)
25 04            Logical Maximum (4)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
0A 26 FF         Usage (65318)
15 00            Logical Minimum (0)
27 FF FF 00 00   Logical Maximum (65535)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
C0               End Collection
(163 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x05, 0x01, 0x09, 0x02,
0xa1, 0x02, 0x85, 0x1f, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x16,
0x01, 0x80, 0x26, 0xff, 0x7f, 0x75, 0x10, 0x95, 0x01, 0x81,
0x06, 0x85, 0x17, 0x06, 0x00, 0xff, 0x0a, 0x06, 0xff, 0x0a,
0x0f, 0xff, 0x15, 0x00, 0x25, 0x01, 0x35, 0x01, 0x45, 0x04,
0x75, 0x02, 0x95, 0x02, 0xb1, 0x02, 0x0a, 0x04, 0xff, 0x15,
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x35, 0x00, 0x45,
0x00, 0xb1, 0x02, 0x75, 0x03, 0x95, 0x01, 0xb1, 0x03, 0xc0,
0x85, 0x16, 0x05, 0x0c, 0x19, 0x00, 0x2a, 0xff, 0x03, 0x15,
0x00, 0x26, 0xff, 0x03, 0x75, 0x0a, 0x95, 0x01, 0x81, 0x00,
0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0x06, 0x00, 0xff, 0x1a,
0x01, 0xfd, 0x2a, 0xff, 0xfd, 0x17, 0x01, 0xfd, 0x00, 0x00,
0x27, 0xff, 0xfd, 0x00, 0x00, 0x75, 0x10, 0x95, 0x01, 0x81,
0x00, 0x85, 0x1c, 0x0a, 0x25, 0xff, 0x15, 0x00, 0x25, 0x04,
0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x0a, 0x26, 0xff, 0x15,
0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x75, 0x10, 0x95, 0x01,
0x81, 0x02, 0xc0,

Device Found
  type: 045e 0773
  path: \\?\hid#vid_045e&pid_0773&mi_02&col01#8&8bcc27a&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      674
  Interface:    2
  Usage (page): 0x1 (0xc)
  Report Descriptor:
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 21            Report ID (33)
06 00 FF         Usage Page (65280)
1A 10 FA         Usage Minimum (64016)
2A 1F FA         Usage Maximum (64031)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 10            Report Count (16)
81 02            Input (0x02)
85 27            Report ID (39)
0A 0A FA         Usage (64010)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 1F            Report Count (31)
81 02            Input (0x02)
85 14            Report ID (20)
0A 01 FE         Usage (65025)
15 00            Logical Minimum (0)
25 03            Logical Maximum (3)
75 02            Report Size (2)
95 01            Report Count (1)
81 02            Input (0x02)
85 04            Report ID (4)
0A 01 FE         Usage (65025)
15 00            Logical Minimum (0)
25 03            Logical Maximum (3)
75 02            Report Size (2)
95 01            Report Count (1)
81 02            Input (0x02)
85 28            Report ID (40)
1A 10 FA         Usage Minimum (64016)
2A 1F FA         Usage Maximum (64031)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 10            Report Count (16)
B1 02            Feature (0x02)
85 20            Report ID (32)
0A 0A FA         Usage (64010)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 12            Report Count (18)
B1 02            Feature (0x02)
85 22            Report ID (34)
0A 0A FA         Usage (64010)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 1A            Report Count (26)
B1 02            Feature (0x02)
85 23            Report ID (35)
0A 0A FA         Usage (64010)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 1A            Report Count (26)
B1 02            Feature (0x02)
85 24            Report ID (36)
0A 0A FA         Usage (64010)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 1F            Report Count (31)
B1 02            Feature (0x02)
85 25            Report ID (37)
0A 0A FA         Usage (64010)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 1F            Report Count (31)
B1 02            Feature (0x02)
85 26            Report ID (38)
0A 0A FA         Usage (64010)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 1F            Report Count (31)
B1 02            Feature (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(200 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x21, 0x06, 0x00,
0xff, 0x1a, 0x10, 0xfa, 0x2a, 0x1f, 0xfa, 0x15, 0x00, 0x25,
0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x85, 0x27, 0x0a,
0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95,
0x1f, 0x81, 0x02, 0x85, 0x14, 0x0a, 0x01, 0xfe, 0x15, 0x00,
0x25, 0x03, 0x75, 0x02, 0x95, 0x01, 0x81, 0x02, 0x85, 0x04,
0x0a, 0x01, 0xfe, 0x15, 0x00, 0x25, 0x03, 0x75, 0x02, 0x95,
0x01, 0x81, 0x02, 0x85, 0x28, 0x1a, 0x10, 0xfa, 0x2a, 0x1f,
0xfa, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0xb1,
0x02, 0x85, 0x20, 0x0a, 0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff,
0x00, 0x75, 0x08, 0x95, 0x12, 0xb1, 0x02, 0x85, 0x22, 0x0a,
0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95,
0x1a, 0xb1, 0x02, 0x85, 0x23, 0x0a, 0x0a, 0xfa, 0x15, 0x00,
0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1a, 0xb1, 0x02, 0x85,
0x24, 0x0a, 0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75,
0x08, 0x95, 0x1f, 0xb1, 0x02, 0x85, 0x25, 0x0a, 0x0a, 0xfa,
0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1f, 0xb1,
0x02, 0x85, 0x26, 0x0a, 0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff,
0x00, 0x75, 0x08, 0x95, 0x1f, 0xb1, 0x02, 0x75, 0x06, 0x95,
0x01, 0x81, 0x03, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0xc0,

Device Found
  type: 045e 0773
  path: \\?\hid#vid_045e&pid_0773&mi_02&col02#8&8bcc27a&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      674
  Interface:    2
  Usage (page): 0x1 (0xc)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 07            Report ID (7)
19 00            Usage Minimum (0)
2A FF 03         Usage Maximum (1023)
15 00            Logical Minimum (0)
26 FF 03         Logical Maximum (1023)
75 0A            Report Size (10)
95 01            Report Count (1)
81 00            Input (0x00)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 07            Usage Page (7)
19 00            Usage Minimum (0)
29 FF            Usage Maximum (255)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 01            Report Count (1)
81 00            Input (0x00)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
06 00 FF         Usage Page (65280)
0A 03 FE         Usage (65027)
0A 04 FE         Usage (65028)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 02            Input (0x02)
0A 05 FF         Usage (65285)
15 00            Logical Minimum (0)
25 1F            Logical Maximum (31)
75 05            Report Size (5)
95 01            Report Count (1)
81 02            Input (0x02)
75 01            Report Size (1)
95 01            Report Count (1)
81 03            Input (0x03) Padding
1A 01 FD         Usage Minimum (64769)
2A FF FD         Usage Maximum (65023)
17 01 FD 00 00   Logical Minimum (64769)
27 FF FD 00 00   Logical Maximum (65023)
75 10            Report Size (16)
95 01            Report Count (1)
81 00            Input (0x00)
0A 02 FF         Usage (65282)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
Report Size (-8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
Report Size (-1)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 01            Report Size (1)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(148 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x07, 0x19, 0x00,
0x2a, 0xff, 0x03, 0x15, 0x00, 0x26, 0xff, 0x03, 0x75, 0x0a,
0x95, 0x01, 0x81, 0x00, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03,
0x05, 0x07, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff,
0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x00, 0x75, 0x08, 0x95,
0x01, 0x81, 0x03, 0x06, 0x00, 0xff, 0x0a, 0x03, 0xfe, 0x0a,
0x04, 0xfe, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02,
0x81, 0x02, 0x0a, 0x05, 0xff, 0x15, 0x00, 0x25, 0x1f, 0x75,
0x05, 0x95, 0x01, 0x81, 0x02, 0x75, 0x01, 0x95, 0x01, 0x81,
0x03, 0x1a, 0x01, 0xfd, 0x2a, 0xff, 0xfd, 0x17, 0x01, 0xfd,
0x00, 0x00, 0x27, 0xff, 0xfd, 0x00, 0x00, 0x75, 0x10, 0x95,
0x01, 0x81, 0x00, 0x0a, 0x02, 0xff, 0x15, 0x00, 0x26, 0xff,
0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x95, 0x01, 0x81,
0x03, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x95, 0x01, 0x81,
0x03, 0x75, 0x01, 0x95, 0x01, 0x81, 0x03, 0xc0,

Device Found
  type: 045e 0773
  path: \\?\hid#vid_045e&pid_0773&mi_02&col03#8&8bcc27a&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      674
  Interface:    2
  Usage (page): 0x88 (0xffbc)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

06 BC FF         Usage Page (65468)
09 88            Usage  (136)
A1 01            Collection (Application)
85 08            Report ID (8)
19 01            Usage Minimum (1)
29 FF            Usage Maximum (255)
15 01            Logical Minimum (1)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 01            Report Count (1)
81 00            Input (0x00)
C0               End Collection
(25 bytes)
0x06, 0xbc, 0xff, 0x09, 0x88, 0xa1, 0x01, 0x85, 0x08, 0x19,
0x01, 0x29, 0xff, 0x15, 0x01, 0x26, 0xff, 0x00, 0x75, 0x08,
0x95, 0x01, 0x81, 0x00, 0xc0,

Device Found
  type: 045e 0773
  path: \\?\hid#vid_045e&pid_0773&mi_02&col04#8&8bcc27a&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      674
  Interface:    2
  Usage (page): 0x80 (0x1)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 03            Report ID (3)
19 00            Usage Minimum (0)
29 FF            Usage Maximum (255)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 01            Report Count (1)
81 00            Input (0x00)
C0               End Collection
(24 bytes)
0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x00,
0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95,
0x01, 0x81, 0x00, 0xc0,
The following device may be a difficult one as well -- Microsoft Nano Receiver v1.0. ``` mac-hid-dump on  main ❯ ./mac-hid-dump mac-hid-dump: 045E 0773: Microsoft - Microsoft? Nano Transceiver v1.0 DESCRIPTOR: 05 0c 09 01 a1 01 85 20 06 00 ff 15 00 26 ff 00 75 08 95 12 0a 0a fa b1 02 85 21 06 00 ff 15 00 25 01 75 01 95 10 1a 10 fa 2a 1f fa 81 02 85 28 06 00 ff 1a 10 fa 2a 1f fa b1 02 85 22 06 00 ff 15 00 26 ff 00 75 08 95 1a 0a 0a fa b1 02 85 23 06 00 ff 0a 0a fa b1 02 85 24 06 00 ff 95 1f 0a 0a fa b1 02 85 25 06 00 ff 0a 0a fa b1 02 85 26 06 00 ff 0a 0a fa b1 02 85 27 06 00 ff 0a 0a fa 81 02 85 14 06 00 ff 15 00 25 03 75 02 95 01 0a 01 fe 81 02 75 06 81 01 85 04 06 00 ff 15 00 25 03 75 02 95 01 0a 01 fe 81 02 75 06 81 01 c0 05 0c 09 01 a1 01 85 07 05 0c 19 00 2a ff 03 95 01 75 10 15 00 26 ff 03 81 00 05 07 19 00 29 ff 75 08 26 ff 00 81 00 81 01 06 00 ff 0a 03 fe 0a 04 fe 75 01 95 02 25 01 81 02 0a 05 ff 95 01 75 05 25 1f 81 02 75 01 81 01 1a 01 fd 2a ff fd 15 01 26 ff 00 75 08 81 00 0a 02 ff 26 ff 00 15 00 81 02 c0 06 bc ff 09 88 a1 01 85 08 19 01 29 ff 15 01 26 ff 00 95 01 75 08 81 00 c0 05 01 09 80 a1 01 85 03 19 00 29 ff 15 00 26 ff 00 81 00 c0 (319 bytes) 045E 0773: Microsoft - Microsoft? Nano Transceiver v1.0 DESCRIPTOR: 05 01 09 02 a1 01 05 01 09 02 a1 02 85 1a 09 01 a1 00 05 09 19 01 29 05 95 05 75 01 15 00 25 01 81 02 75 03 95 01 81 01 05 01 09 30 09 31 95 02 75 10 16 01 80 26 ff 7f 81 06 a1 02 85 12 09 48 95 01 75 02 15 00 25 01 35 01 45 04 b1 02 85 1a 09 38 35 00 45 00 95 01 75 10 16 01 80 26 ff 7f 81 06 c0 a1 02 85 12 09 48 75 02 15 00 25 01 35 01 45 04 b1 02 35 00 45 00 75 04 b1 01 85 1a 05 0c 95 01 75 10 16 01 80 26 ff 7f 0a 38 02 81 06 c0 c0 c0 c0 05 0c 09 01 a1 01 05 01 09 02 a1 02 85 1f 05 0c 0a 38 02 95 01 75 10 16 01 80 26 ff 7f 81 06 85 17 06 00 ff 0a 06 ff 0a 0f ff 15 00 25 01 35 01 45 04 95 02 75 02 b1 02 0a 04 ff 35 00 45 00 95 01 75 01 b1 02 75 03 b1 01 c0 85 16 05 0c 19 00 2a ff 03 95 01 75 10 15 00 26 ff 03 81 00 06 00 ff 1a 01 fd 2a ff fd 15 01 26 ff 00 75 08 81 00 81 01 85 1c 06 00 ff 0a 25 ff 15 00 25 04 75 08 95 01 81 02 0a 26 ff 75 10 15 00 27 ff ff 00 00 81 02 c0 (295 bytes) 045E 0773: Microsoft - Microsoft? Nano Transceiver v1.0 DESCRIPTOR: 05 01 09 06 a1 01 05 08 19 01 29 03 15 00 25 01 75 01 95 03 91 02 95 05 91 01 05 07 1a e0 00 2a e7 00 95 08 81 02 75 08 95 01 81 01 19 00 2a 91 00 26 ff 00 95 06 81 00 c0 (57 bytes) ``` <details> <summary> Click to expand for pull request 262 output </summary> ``` Device Found type: 045e 0773 path: \\?\hid#vid_045e&pid_0773&mi_00#8&385f2df4&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Product: Release: 674 Interface: 0 Usage (page): 0x6 (0x1) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 91 Usage Maximum (145) 15 00 Logical Minimum (0) 26 91 00 Logical Maximum (145) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 91 02 Output (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (66 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 0x29, 0x91, 0x15, 0x00, 0x26, 0x91, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x75, 0x05, 0x95, 0x01, 0x91, 0x03, 0xc0, Device Found type: 045e 0773 path: \\?\hid#vid_045e&pid_0773&mi_01&col01#8&209ba1af&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 674 Interface: 1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 02 Usage (2) A1 02 Collection (Logical) 09 01 Usage (1) A1 00 Collection (Physical) 85 1A Report ID (26) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 81 02 Input (0x02) 75 03 Report Size (3) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 01 80 Logical Minimum (-32767) 26 FF 7F Logical Maximum (32767) 75 10 Report Size (16) 95 02 Report Count (2) 81 06 Input (0x06) 09 00 Usage (0) A1 02 Collection (Logical) 09 38 Usage (56) 16 01 80 Logical Minimum (-32767) 26 FF 7F Logical Maximum (32767) 75 10 Report Size (16) 95 01 Report Count (1) 81 06 Input (0x06) 85 12 Report ID (18) 09 48 Usage (72) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 35 01 Physical Minimum (1) 45 04 Physical Maximum (4) 75 02 Report Size (2) 95 01 Report Count (1) B1 02 Feature (0x02) C0 End Collection 09 00 Usage (0) A1 02 Collection (Logical) 85 1A Report ID (26) 05 0C Usage Page (12) 0A 38 02 Usage (568) 16 01 80 Logical Minimum (-32767) 26 FF 7F Logical Maximum (32767) 35 00 Physical Minimum (0) 45 00 Physical Maximum (0) 75 10 Report Size (16) 95 01 Report Count (1) 81 06 Input (0x06) 85 12 Report ID (18) 05 01 Usage Page (1) 09 48 Usage (72) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 35 01 Physical Minimum (1) 45 04 Physical Maximum (4) 75 02 Report Size (2) 95 01 Report Count (1) B1 02 Feature (0x02) 75 04 Report Size (4) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection C0 End Collection C0 End Collection (150 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x02, 0xa1, 0x02, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x1a, 0x05, 0x09, 0x19, 0x01, 0x29, 0x05, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x81, 0x02, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0x80, 0x26, 0xff, 0x7f, 0x75, 0x10, 0x95, 0x02, 0x81, 0x06, 0x09, 0x00, 0xa1, 0x02, 0x09, 0x38, 0x16, 0x01, 0x80, 0x26, 0xff, 0x7f, 0x75, 0x10, 0x95, 0x01, 0x81, 0x06, 0x85, 0x12, 0x09, 0x48, 0x15, 0x00, 0x25, 0x01, 0x35, 0x01, 0x45, 0x04, 0x75, 0x02, 0x95, 0x01, 0xb1, 0x02, 0xc0, 0x09, 0x00, 0xa1, 0x02, 0x85, 0x1a, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x16, 0x01, 0x80, 0x26, 0xff, 0x7f, 0x35, 0x00, 0x45, 0x00, 0x75, 0x10, 0x95, 0x01, 0x81, 0x06, 0x85, 0x12, 0x05, 0x01, 0x09, 0x48, 0x15, 0x00, 0x25, 0x01, 0x35, 0x01, 0x45, 0x04, 0x75, 0x02, 0x95, 0x01, 0xb1, 0x02, 0x75, 0x04, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0, 0xc0, 0xc0, Device Found type: 045e 0773 path: \\?\hid#vid_045e&pid_0773&mi_01&col02#8&209ba1af&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 674 Interface: 1 Usage (page): 0x1 (0xc) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 05 01 Usage Page (1) 09 02 Usage (2) A1 02 Collection (Logical) 85 1F Report ID (31) 05 0C Usage Page (12) 0A 38 02 Usage (568) 16 01 80 Logical Minimum (-32767) 26 FF 7F Logical Maximum (32767) 75 10 Report Size (16) 95 01 Report Count (1) 81 06 Input (0x06) 85 17 Report ID (23) 06 00 FF Usage Page (65280) 0A 06 FF Usage (65286) 0A 0F FF Usage (65295) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 35 01 Physical Minimum (1) 45 04 Physical Maximum (4) 75 02 Report Size (2) 95 02 Report Count (2) B1 02 Feature (0x02) 0A 04 FF Usage (65284) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 35 00 Physical Minimum (0) 45 00 Physical Maximum (0) B1 02 Feature (0x02) 75 03 Report Size (3) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection 85 16 Report ID (22) 05 0C Usage Page (12) 19 00 Usage Minimum (0) 2A FF 03 Usage Maximum (1023) 15 00 Logical Minimum (0) 26 FF 03 Logical Maximum (1023) 75 0A Report Size (10) 95 01 Report Count (1) 81 00 Input (0x00) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding 06 00 FF Usage Page (65280) 1A 01 FD Usage Minimum (64769) 2A FF FD Usage Maximum (65023) 17 01 FD 00 00 Logical Minimum (64769) 27 FF FD 00 00 Logical Maximum (65023) 75 10 Report Size (16) 95 01 Report Count (1) 81 00 Input (0x00) 85 1C Report ID (28) 0A 25 FF Usage (65317) 15 00 Logical Minimum (0) 25 04 Logical Maximum (4) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) 0A 26 FF Usage (65318) 15 00 Logical Minimum (0) 27 FF FF 00 00 Logical Maximum (65535) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) C0 End Collection (163 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x05, 0x01, 0x09, 0x02, 0xa1, 0x02, 0x85, 0x1f, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x16, 0x01, 0x80, 0x26, 0xff, 0x7f, 0x75, 0x10, 0x95, 0x01, 0x81, 0x06, 0x85, 0x17, 0x06, 0x00, 0xff, 0x0a, 0x06, 0xff, 0x0a, 0x0f, 0xff, 0x15, 0x00, 0x25, 0x01, 0x35, 0x01, 0x45, 0x04, 0x75, 0x02, 0x95, 0x02, 0xb1, 0x02, 0x0a, 0x04, 0xff, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x35, 0x00, 0x45, 0x00, 0xb1, 0x02, 0x75, 0x03, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0x85, 0x16, 0x05, 0x0c, 0x19, 0x00, 0x2a, 0xff, 0x03, 0x15, 0x00, 0x26, 0xff, 0x03, 0x75, 0x0a, 0x95, 0x01, 0x81, 0x00, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0x06, 0x00, 0xff, 0x1a, 0x01, 0xfd, 0x2a, 0xff, 0xfd, 0x17, 0x01, 0xfd, 0x00, 0x00, 0x27, 0xff, 0xfd, 0x00, 0x00, 0x75, 0x10, 0x95, 0x01, 0x81, 0x00, 0x85, 0x1c, 0x0a, 0x25, 0xff, 0x15, 0x00, 0x25, 0x04, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x0a, 0x26, 0xff, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0xc0, Device Found type: 045e 0773 path: \\?\hid#vid_045e&pid_0773&mi_02&col01#8&8bcc27a&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 674 Interface: 2 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 21 Report ID (33) 06 00 FF Usage Page (65280) 1A 10 FA Usage Minimum (64016) 2A 1F FA Usage Maximum (64031) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 10 Report Count (16) 81 02 Input (0x02) 85 27 Report ID (39) 0A 0A FA Usage (64010) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 1F Report Count (31) 81 02 Input (0x02) 85 14 Report ID (20) 0A 01 FE Usage (65025) 15 00 Logical Minimum (0) 25 03 Logical Maximum (3) 75 02 Report Size (2) 95 01 Report Count (1) 81 02 Input (0x02) 85 04 Report ID (4) 0A 01 FE Usage (65025) 15 00 Logical Minimum (0) 25 03 Logical Maximum (3) 75 02 Report Size (2) 95 01 Report Count (1) 81 02 Input (0x02) 85 28 Report ID (40) 1A 10 FA Usage Minimum (64016) 2A 1F FA Usage Maximum (64031) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 10 Report Count (16) B1 02 Feature (0x02) 85 20 Report ID (32) 0A 0A FA Usage (64010) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 12 Report Count (18) B1 02 Feature (0x02) 85 22 Report ID (34) 0A 0A FA Usage (64010) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 1A Report Count (26) B1 02 Feature (0x02) 85 23 Report ID (35) 0A 0A FA Usage (64010) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 1A Report Count (26) B1 02 Feature (0x02) 85 24 Report ID (36) 0A 0A FA Usage (64010) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 1F Report Count (31) B1 02 Feature (0x02) 85 25 Report ID (37) 0A 0A FA Usage (64010) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 1F Report Count (31) B1 02 Feature (0x02) 85 26 Report ID (38) 0A 0A FA Usage (64010) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 1F Report Count (31) B1 02 Feature (0x02) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (200 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x21, 0x06, 0x00, 0xff, 0x1a, 0x10, 0xfa, 0x2a, 0x1f, 0xfa, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x85, 0x27, 0x0a, 0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1f, 0x81, 0x02, 0x85, 0x14, 0x0a, 0x01, 0xfe, 0x15, 0x00, 0x25, 0x03, 0x75, 0x02, 0x95, 0x01, 0x81, 0x02, 0x85, 0x04, 0x0a, 0x01, 0xfe, 0x15, 0x00, 0x25, 0x03, 0x75, 0x02, 0x95, 0x01, 0x81, 0x02, 0x85, 0x28, 0x1a, 0x10, 0xfa, 0x2a, 0x1f, 0xfa, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0xb1, 0x02, 0x85, 0x20, 0x0a, 0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x12, 0xb1, 0x02, 0x85, 0x22, 0x0a, 0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1a, 0xb1, 0x02, 0x85, 0x23, 0x0a, 0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1a, 0xb1, 0x02, 0x85, 0x24, 0x0a, 0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1f, 0xb1, 0x02, 0x85, 0x25, 0x0a, 0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1f, 0xb1, 0x02, 0x85, 0x26, 0x0a, 0x0a, 0xfa, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1f, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 045e 0773 path: \\?\hid#vid_045e&pid_0773&mi_02&col02#8&8bcc27a&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 674 Interface: 2 Usage (page): 0x1 (0xc) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 07 Report ID (7) 19 00 Usage Minimum (0) 2A FF 03 Usage Maximum (1023) 15 00 Logical Minimum (0) 26 FF 03 Logical Maximum (1023) 75 0A Report Size (10) 95 01 Report Count (1) 81 00 Input (0x00) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 07 Usage Page (7) 19 00 Usage Minimum (0) 29 FF Usage Maximum (255) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) 81 00 Input (0x00) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 06 00 FF Usage Page (65280) 0A 03 FE Usage (65027) 0A 04 FE Usage (65028) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 02 Input (0x02) 0A 05 FF Usage (65285) 15 00 Logical Minimum (0) 25 1F Logical Maximum (31) 75 05 Report Size (5) 95 01 Report Count (1) 81 02 Input (0x02) 75 01 Report Size (1) 95 01 Report Count (1) 81 03 Input (0x03) Padding 1A 01 FD Usage Minimum (64769) 2A FF FD Usage Maximum (65023) 17 01 FD 00 00 Logical Minimum (64769) 27 FF FD 00 00 Logical Maximum (65023) 75 10 Report Size (16) 95 01 Report Count (1) 81 00 Input (0x00) 0A 02 FF Usage (65282) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) Report Size (-8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding Report Size (-1) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 01 Report Size (1) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (148 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x07, 0x19, 0x00, 0x2a, 0xff, 0x03, 0x15, 0x00, 0x26, 0xff, 0x03, 0x75, 0x0a, 0x95, 0x01, 0x81, 0x00, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0x05, 0x07, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x06, 0x00, 0xff, 0x0a, 0x03, 0xfe, 0x0a, 0x04, 0xfe, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x02, 0x0a, 0x05, 0xff, 0x15, 0x00, 0x25, 0x1f, 0x75, 0x05, 0x95, 0x01, 0x81, 0x02, 0x75, 0x01, 0x95, 0x01, 0x81, 0x03, 0x1a, 0x01, 0xfd, 0x2a, 0xff, 0xfd, 0x17, 0x01, 0xfd, 0x00, 0x00, 0x27, 0xff, 0xfd, 0x00, 0x00, 0x75, 0x10, 0x95, 0x01, 0x81, 0x00, 0x0a, 0x02, 0xff, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x95, 0x01, 0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x01, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 045e 0773 path: \\?\hid#vid_045e&pid_0773&mi_02&col03#8&8bcc27a&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 674 Interface: 2 Usage (page): 0x88 (0xffbc) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 06 BC FF Usage Page (65468) 09 88 Usage (136) A1 01 Collection (Application) 85 08 Report ID (8) 19 01 Usage Minimum (1) 29 FF Usage Maximum (255) 15 01 Logical Minimum (1) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) 81 00 Input (0x00) C0 End Collection (25 bytes) 0x06, 0xbc, 0xff, 0x09, 0x88, 0xa1, 0x01, 0x85, 0x08, 0x19, 0x01, 0x29, 0xff, 0x15, 0x01, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x00, 0xc0, Device Found type: 045e 0773 path: \\?\hid#vid_045e&pid_0773&mi_02&col04#8&8bcc27a&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 674 Interface: 2 Usage (page): 0x80 (0x1) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 03 Report ID (3) 19 00 Usage Minimum (0) 29 FF Usage Maximum (255) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 01 Report Count (1) 81 00 Input (0x00) C0 End Collection (24 bytes) 0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x00, 0xc0, ``` </details>
JoergAtGithub commented 2021-07-18 15:02:47 -05:00 (Migrated from github.com)

@JoergAtGithub
Full log from hidtest.exe. Please take not that "HIDP_STATUS_BUFFER_TOO_SMALL" was triggered

This is not a real error, this is the debug output, I added to understand the issue with the Dell keybord.

> > > @JoergAtGithub > Full log from hidtest.exe. Please take not that "HIDP_STATUS_BUFFER_TOO_SMALL" was triggered This is not a real error, this is the debug output, I added to understand the issue with the Dell keybord.
mcuee commented 2021-07-18 23:06:01 -05:00 (Migrated from github.com)

Output for a Logitech USB Keyboard. Same output as #306 and at least the report ID, report size and count are all correct.

Device Found
  type: 046d c315
  path: \\?\hid#vid_046d&pid_c315#6&1731a1a&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer: Logitech
  Product:      Logitech USB Keyboard
  Release:      2800
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
19 00            Usage Minimum (0)
29 A4            Usage Maximum (164)
15 00            Logical Minimum (0)
26 A4 00         Logical Maximum (164)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
91 02            Output (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(66 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0,
0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08,
0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00,
0x29, 0xa4, 0x15, 0x00, 0x26, 0xa4, 0x00, 0x75, 0x08, 0x95,
0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15,
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75,
0x03, 0x95, 0x01, 0x91, 0x03, 0xc0,
Output for a Logitech USB Keyboard. Same output as #306 and at least the report ID, report size and count are all correct. ``` Device Found type: 046d c315 path: \\?\hid#vid_046d&pid_c315#6&1731a1a&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Logitech Product: Logitech USB Keyboard Release: 2800 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 A4 Usage Maximum (164) 15 00 Logical Minimum (0) 26 A4 00 Logical Maximum (164) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 91 02 Output (0x02) 75 03 Report Size (3) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (66 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 0x29, 0xa4, 0x15, 0x00, 0x26, 0xa4, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75, 0x03, 0x95, 0x01, 0x91, 0x03, 0xc0, ```
mcuee commented 2021-07-25 03:13:25 -05:00 (Migrated from github.com)

Output for the ESP32 BLE HID device, same problem as #306 that second report is not working.

Device Found
  type: 16c0 05df
  path: \\?\hid#{00001812-0000-1000-8000-00805f9b34fb}_dev_vid&0216c0_pid&05df_rev&0100_30aea44c4efa#9&38bb9e5a&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      100
  Interface:    -1
  Usage (page): 0x100 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
0A 00 01         Usage  (256)
A1 01            Collection (Application)
85 01            Report ID (1)
09 01            Usage (1)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 08            Report Count (8)
82 02 01         Input (0x102)
09 03            Usage (3)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 08            Report Count (8)
91 02            Output (0x02)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 08            Report Count (8)
B2 02 01         Feature (0x102)
C0               End Collection
(52 bytes)
0x06, 0x00, 0xff, 0x0a, 0x00, 0x01, 0xa1, 0x01, 0x85, 0x01,
0x09, 0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95,
0x08, 0x82, 0x02, 0x01, 0x09, 0x03, 0x15, 0x00, 0x26, 0xff,
0x00, 0x75, 0x08, 0x95, 0x08, 0x91, 0x02, 0x09, 0x02, 0x15,
0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x08, 0xb2, 0x02,
0x01, 0xc0,

Device Found
  type: 16c0 05df
  path: \\?\hid#{00001812-0000-1000-8000-00805f9b34fb}_dev_vid&0216c0_pid&05df_rev&0100_30aea44c4efa#9&f97cf65&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      100
  Interface:    -1
  Usage (page): 0x1 (0xc)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

Output for the ESP32 BLE HID device, same problem as #306 that second report is not working. ``` Device Found type: 16c0 05df path: \\?\hid#{00001812-0000-1000-8000-00805f9b34fb}_dev_vid&0216c0_pid&05df_rev&0100_30aea44c4efa#9&38bb9e5a&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 100 Interface: -1 Usage (page): 0x100 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 0A 00 01 Usage (256) A1 01 Collection (Application) 85 01 Report ID (1) 09 01 Usage (1) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 08 Report Count (8) 82 02 01 Input (0x102) 09 03 Usage (3) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 08 Report Count (8) 91 02 Output (0x02) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 08 Report Count (8) B2 02 01 Feature (0x102) C0 End Collection (52 bytes) 0x06, 0x00, 0xff, 0x0a, 0x00, 0x01, 0xa1, 0x01, 0x85, 0x01, 0x09, 0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x08, 0x82, 0x02, 0x01, 0x09, 0x03, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x08, 0x91, 0x02, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x08, 0xb2, 0x02, 0x01, 0xc0, Device Found type: 16c0 05df path: \\?\hid#{00001812-0000-1000-8000-00805f9b34fb}_dev_vid&0216c0_pid&05df_rev&0100_30aea44c4efa#9&f97cf65&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 100 Interface: -1 Usage (page): 0x1 (0xc) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL ```
JoergAtGithub commented 2021-07-25 03:23:07 -05:00 (Migrated from github.com)

May I ask if you have access to the Dell keyboard again? It would help to see what the debug output added to the latest #262 shows for this device.

May I ask if you have access to the Dell keyboard again? It would help to see what the debug output added to the latest #262 shows for this device.
mcuee commented 2021-07-25 04:07:32 -05:00 (Migrated from github.com)

Yes I should have access to the Dell keyboard soon and I will test it out.

Yes I should have access to the Dell keyboard soon and I will test it out.
mcuee commented 2021-07-25 21:20:45 -05:00 (Migrated from github.com)

May I ask if you have access to the Dell keyboard again? It would help to see what the debug output added to the latest #262 shows for this device.

This is the output:

Device Found
  type: 413c 2107
  path: \\?\hid#vid_413c&pid_2107#e&1de7f0c0&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer: DELL
  Product:      Dell USB Entry Keyboard
  Release:      178
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
19 00            Usage Minimum (0)
29 FF            Usage Maximum (255)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
91 02            Output (0x02)
Report Size (-8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 2F            Report Size (47)
95 01            Report Count (1)
81 03            Input (0x03) Padding
Report Size (-41)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 01            Report Size (1)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 05            Report Size (5)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(80 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0,
0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08,
0x81, 0x02, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff,
0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19,
0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
0x03, 0x91, 0x02, 0x95, 0x01, 0x81, 0x03, 0x75, 0x2f, 0x95,
0x01, 0x81, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x01, 0x95,
0x01, 0x81, 0x03, 0x75, 0x05, 0x95, 0x01, 0x91, 0x03, 0xc0,
> May I ask if you have access to the Dell keyboard again? It would help to see what the debug output added to the latest #262 shows for this device. This is the output: ``` Device Found type: 413c 2107 path: \\?\hid#vid_413c&pid_2107#e&1de7f0c0&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: DELL Product: Dell USB Entry Keyboard Release: 178 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 19 00 Usage Minimum (0) 29 FF Usage Maximum (255) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 91 02 Output (0x02) Report Size (-8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 2F Report Size (47) 95 01 Report Count (1) 81 03 Input (0x03) Padding Report Size (-41) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 01 Report Size (1) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 05 Report Size (5) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (80 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x95, 0x01, 0x81, 0x03, 0x75, 0x2f, 0x95, 0x01, 0x81, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x01, 0x95, 0x01, 0x81, 0x03, 0x75, 0x05, 0x95, 0x01, 0x91, 0x03, 0xc0, ```
mcuee commented 2021-07-25 21:25:05 -05:00 (Migrated from github.com)

#306 looks okay for the Dell keyboard.

Device Found
  type: 413c 2107
  path: \\?\hid#vid_413c&pid_2107#e&1de7f0c0&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer: DELL
  Product:      Dell USB Entry Keyboard
  Release:      178
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor: DEBUG:ReportType 0
DEBUG:BytePosition 1
DEBUG:BitPosition 0
DEBUG:BitSize 1
DEBUG:ReportCount 8
DEBUG:ReportID 0
DEBUG:NotRange.Usage 224
DEBUG:IsMultipleItemsForArray 0
DEBUG:NextBytePosition 2
DEBUG:IsAlias 0
DEBUG:IsRange 1
DEBUG:IsPadding 0
DEBUG:BitField 2
DEBUG:ReportType 0
DEBUG:BytePosition 3
DEBUG:BitPosition 0
DEBUG:BitSize 8
DEBUG:ReportCount 6
DEBUG:ReportID 0
DEBUG:NotRange.Usage 0
DEBUG:IsMultipleItemsForArray 0
DEBUG:NextBytePosition 9
DEBUG:IsAlias 0
DEBUG:IsRange 1
DEBUG:IsPadding 0
DEBUG:BitField 0
DEBUG:ReportType 1
DEBUG:BytePosition 1
DEBUG:BitPosition 0
DEBUG:BitSize 1
DEBUG:ReportCount 3
DEBUG:ReportID 0
DEBUG:NotRange.Usage 1
DEBUG:IsMultipleItemsForArray 0
DEBUG:NextBytePosition 2
DEBUG:IsAlias 0
DEBUG:IsRange 1
DEBUG:IsPadding 0
DEBUG:BitField 2

05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
19 00            Usage Minimum (0)
29 FF            Usage Maximum (255)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
91 02            Output (0x02)
75 05            Report Size (5)  Padding
95 01            Report Count (1) Padding
91 03            Output (0x03)    Padding
C0               End Collection
(66 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0,
0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08,
0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00,
0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95,
0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15,
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x75,
0x05, 0x95, 0x01, 0x91, 0x03, 0xc0,
#306 looks okay for the Dell keyboard. ``` Device Found type: 413c 2107 path: \\?\hid#vid_413c&pid_2107#e&1de7f0c0&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: DELL Product: Dell USB Entry Keyboard Release: 178 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: DEBUG:ReportType 0 DEBUG:BytePosition 1 DEBUG:BitPosition 0 DEBUG:BitSize 1 DEBUG:ReportCount 8 DEBUG:ReportID 0 DEBUG:NotRange.Usage 224 DEBUG:IsMultipleItemsForArray 0 DEBUG:NextBytePosition 2 DEBUG:IsAlias 0 DEBUG:IsRange 1 DEBUG:IsPadding 0 DEBUG:BitField 2 DEBUG:ReportType 0 DEBUG:BytePosition 3 DEBUG:BitPosition 0 DEBUG:BitSize 8 DEBUG:ReportCount 6 DEBUG:ReportID 0 DEBUG:NotRange.Usage 0 DEBUG:IsMultipleItemsForArray 0 DEBUG:NextBytePosition 9 DEBUG:IsAlias 0 DEBUG:IsRange 1 DEBUG:IsPadding 0 DEBUG:BitField 0 DEBUG:ReportType 1 DEBUG:BytePosition 1 DEBUG:BitPosition 0 DEBUG:BitSize 1 DEBUG:ReportCount 3 DEBUG:ReportID 0 DEBUG:NotRange.Usage 1 DEBUG:IsMultipleItemsForArray 0 DEBUG:NextBytePosition 2 DEBUG:IsAlias 0 DEBUG:IsRange 1 DEBUG:IsPadding 0 DEBUG:BitField 2 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 FF Usage Maximum (255) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 91 02 Output (0x02) 75 05 Report Size (5) Padding 95 01 Report Count (1) Padding 91 03 Output (0x03) Padding C0 End Collection (66 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x75, 0x05, 0x95, 0x01, 0x91, 0x03, 0xc0, ```
mcuee commented 2021-07-25 23:56:20 -05:00 (Migrated from github.com)

Full debug log with the latest git with quite some devices attached, including the Logitech USB Receiver, Dell USB Mouse, Dell USB Keyboard and the Plantronics USB headset.

Click to expand for the full debug log
C:\work\hid\hidapi_test1\windows\x64\Release [windows_report_descriptor_reconstructor ≡]> .\hidtest.exe
hidapi test/example tool. Compiled with hidapi version 0.11.0, runtime version 0.11.0.
Compile-time version matches runtime version of hidapi.

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&383a3a17&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 02            Report ID (2)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 10            Usage Maximum (16)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 10            Report Count (16)
81 02            Input (0x02)
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 01 F8         Logical Minimum (-2047)
26 FF 07         Logical Maximum (2047)
75 0C            Report Size (12)
95 02            Report Count (2)
81 06            Input (0x06)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(75 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01,
0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07,
0x75, 0x0c, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81,
0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c,
0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95,
0x01, 0x81, 0x06, 0xc0, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&383a3a17&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xc)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
19 01            Usage Minimum (1)
2A 8C 02         Usage Maximum (652)
15 01            Logical Minimum (1)
26 8C 02         Logical Maximum (652)
75 10            Report Size (16)
95 02            Report Count (2)
81 00            Input (0x00)
C0               End Collection
(25 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x01,
0x2a, 0x8c, 0x02, 0x15, 0x01, 0x26, 0x8c, 0x02, 0x75, 0x10,
0x95, 0x02, 0x81, 0x00, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&383a3a17&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x80 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 04            Report ID (4)
09 83            Usage (131)
09 81            Usage (129)
09 82            Usage (130)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 60            Input (0x60)
C0               End Collection
(25 bytes)
0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x04, 0x09, 0x83,
0x09, 0x81, 0x09, 0x82, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x03, 0x81, 0x60, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&383a3a17&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 10            Report ID (16)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
(34 bytes)
0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x10, 0x09,
0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81,
0x00, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
0x01, 0x91, 0x00, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 01            Report ID (1)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 03            Report Count (3)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(69 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x85, 0x01, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05,
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31,
0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03,
0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25,
0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0,

Device Found
  type: 8087 0a1e
  path: \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      200
  Interface:    -1
  Usage (page): 0xc (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 0C            Usage  (12)
A1 01            Collection (Application)
85 08            Report ID (8)
09 C6            Usage (198)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(27 bytes)
0x05, 0x01, 0x09, 0x0c, 0xa1, 0x01, 0x85, 0x08, 0x09, 0xc6,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06,
0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0,

Device Found
  type: 044e 1212
  path: \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
85 07            Report ID (7)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
19 00            Usage Minimum (0)
29 75            Usage Maximum (117)
15 00            Logical Minimum (0)
25 75            Logical Maximum (117)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
C0               End Collection
(45 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x07, 0x05, 0x07,
0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03,
0x19, 0x00, 0x29, 0x75, 0x15, 0x00, 0x25, 0x75, 0x75, 0x08,
0x95, 0x06, 0x81, 0x00, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&383a3a17&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
09 02            Usage  (2)
A1 01            Collection (Application)
85 11            Report ID (17)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
(34 bytes)
0x06, 0x00, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x11, 0x09,
0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81,
0x00, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
0x01, 0x91, 0x00, 0xc0,

Device Found
  type: 8087 0a1e
  path: \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      200
  Interface:    -1
  Usage (page): 0xd (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 0D            Usage  (13)
A1 01            Collection (Application)
09 0D            Usage  (13)
A1 02            Collection (Logical)
85 1C            Report ID (28)
09 81            Usage (129)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
09 CB            Usage (203)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 02            Feature (0x02)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
C0               End Collection
(50 bytes)
0x05, 0x01, 0x09, 0x0d, 0xa1, 0x01, 0x09, 0x0d, 0xa1, 0x02,
0x85, 0x1c, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x01, 0x81, 0x02, 0x09, 0xcb, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x01, 0xb1, 0x02, 0x75, 0x07, 0x95, 0x01,
0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0,

Device Found
  type: 044e 1212
  path: \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 06            Report ID (6)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 00 FE         Logical Minimum (-512)
26 00 02         Logical Maximum (512)
75 10            Report Size (16)
95 02            Report Count (2)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(54 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x85, 0x06, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05,
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31,
0x16, 0x00, 0xfe, 0x26, 0x00, 0x02, 0x75, 0x10, 0x95, 0x02,
0x81, 0x06, 0xc0, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x5 (0xd)
  Report Descriptor:
05 0D            Usage Page (13)
09 05            Usage  (5)
A1 01            Collection (Application)
09 22            Usage  (34)
A1 02            Collection (Logical)
85 08            Report ID (8)
09 47            Usage (71)
09 42            Usage (66)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 02            Input (0x02)
09 51            Usage (81)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
75 03            Report Size (3)
95 01            Report Count (1)
81 02            Input (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
15 00            Logical Minimum (0)
26 AF 04         Logical Maximum (1199)
35 00            Physical Minimum (0)
46 E8 03         Physical Maximum (1000)
55 0E            Unit Exponent (14)
65 11            Unit (17)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 31            Usage (49)
15 00            Logical Minimum (0)
26 7B 02         Logical Maximum (635)
35 00            Physical Minimum (0)
46 12 02         Physical Maximum (530)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
C0               End Collection
05 0D            Usage Page (13)
09 56            Usage (86)
15 00            Logical Minimum (0)
27 FF FF 00 00   Logical Maximum (65535)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 54            Usage (84)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
05 09            Usage Page (9)
09 02            Usage (2)
09 03            Usage (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
81 02            Input (0x02)
85 09            Report ID (9)
05 0D            Usage Page (13)
09 55            Usage (85)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 01            Report Count (1)
B1 02            Feature (0x02)
85 0A            Report ID (10)
06 00 FF         Usage Page (65280)
09 C5            Usage (197)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
96 00 01         Report Count (256)
B1 02            Feature (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(204 bytes)
0x05, 0x0d, 0x09, 0x05, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02,
0x85, 0x08, 0x09, 0x47, 0x09, 0x42, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x02, 0x81, 0x02, 0x09, 0x51, 0x15, 0x00,
0x25, 0x05, 0x75, 0x03, 0x95, 0x01, 0x81, 0x02, 0x75, 0x03,
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x15, 0x00,
0x26, 0xaf, 0x04, 0x35, 0x00, 0x46, 0xe8, 0x03, 0x55, 0x0e,
0x65, 0x11, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x31,
0x15, 0x00, 0x26, 0x7b, 0x02, 0x35, 0x00, 0x46, 0x12, 0x02,
0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0xc0, 0x05, 0x0d, 0x09,
0x56, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x35, 0x00,
0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10,
0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x54, 0x15, 0x00,
0x25, 0x05, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x05, 0x09,
0x09, 0x02, 0x09, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0x81, 0x02,
0x85, 0x09, 0x05, 0x0d, 0x09, 0x55, 0x15, 0x00, 0x25, 0x05,
0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66,
0x01, 0x10, 0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0x85, 0x0a,
0x06, 0x00, 0xff, 0x09, 0xc5, 0x15, 0x00, 0x26, 0xff, 0x00,
0x75, 0x08, 0x96, 0x00, 0x01, 0xb1, 0x02, 0x75, 0x06, 0x95,
0x01, 0x81, 0x03, 0xc0,

Device Found
  type: 413c b06e
  path: \\?\hid#vid_413c&pid_b06e#c&37ff1248&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      101
  Interface:    -1
  Usage (page): 0xda (0xffda)
  Report Descriptor:
06 DA FF         Usage Page (65498)
09 DA            Usage  (218)
A1 01            Collection (Application)
09 DA            Usage (218)
19 01            Usage Minimum (1)
29 0E            Usage Maximum (14)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 0F            Report Count (15)
81 02            Input (0x02)
05 DA            Usage Page (218)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 05            Report Count (5)
91 02            Output (0x02)
C0               End Collection
(40 bytes)
0x06, 0xda, 0xff, 0x09, 0xda, 0xa1, 0x01, 0x09, 0xda, 0x19,
0x01, 0x29, 0x0e, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95,
0x0f, 0x81, 0x02, 0x05, 0xda, 0x19, 0x01, 0x29, 0x05, 0x15,
0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x05, 0x91, 0x02, 0xc0,

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col01#f&39e6f119&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x1 (0xc)
  Report Descriptor:
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 01            Report ID (1)
09 E9            Usage (233)
09 EA            Usage (234)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 06            Input (0x06)
85 02            Report ID (2)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
85 05            Report ID (5)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 07            Report ID (7)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 04            Report ID (4)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 24            Report Count (36)
91 02            Output (0x02)
85 06            Report ID (6)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 24            Report Count (36)
91 02            Output (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(99 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x01, 0x09, 0xe9,
0x09, 0xea, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02,
0x81, 0x06, 0x85, 0x02, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x85, 0x05, 0x09, 0x00,
0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02,
0x85, 0x07, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08,
0x95, 0x20, 0x81, 0x02, 0x85, 0x04, 0x09, 0x00, 0x15, 0x00,
0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0x85, 0x06,
0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x24,
0x91, 0x02, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0xc0,

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x1 (0xc)
  Report Descriptor:
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 02            Report ID (2)
09 E9            Usage (233)
09 EA            Usage (234)
0A 21 02         Usage (545)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(32 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x02, 0x09, 0xe9,
0x09, 0xea, 0x0a, 0x21, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75,
0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81,
0x03, 0xc0,

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col02#f&39e6f119&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x5 (0xb)
  Report Descriptor:
05 0B            Usage Page (11)
09 05            Usage  (5)
A1 01            Collection (Application)
85 08            Report ID (8)
09 2F            Usage (47)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
09 20            Usage (32)
09 21            Usage (33)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 22            Input (0x22)
85 09            Report ID (9)
05 08            Usage Page (8)
09 09            Usage (9)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 17            Report ID (23)
09 17            Usage (23)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 18            Report ID (24)
09 18            Usage (24)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 1E            Report ID (30)
09 1E            Usage (30)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 20            Report ID (32)
09 20            Usage (32)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 2A            Report ID (42)
09 2A            Usage (42)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(163 bytes)
0x05, 0x0b, 0x09, 0x05, 0xa1, 0x01, 0x85, 0x08, 0x09, 0x2f,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06,
0x09, 0x20, 0x09, 0x21, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x02, 0x81, 0x22, 0x85, 0x09, 0x05, 0x08, 0x09, 0x09,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22,
0x85, 0x17, 0x09, 0x17, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x01, 0x91, 0x22, 0x85, 0x18, 0x09, 0x18, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x1e,
0x09, 0x1e, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01,
0x91, 0x22, 0x85, 0x20, 0x09, 0x20, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x2a, 0x09, 0x2a,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22,
0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x75, 0x07, 0x95, 0x01,
0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07,
0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03,
0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01,
0x91, 0x03, 0xc0,

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x80 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 03            Report ID (3)
09 81            Usage (129)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
C0               End Collection
(27 bytes)
0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x81,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02,
0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0,

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col03#f&39e6f119&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x3 (0xffa0)
  Report Descriptor:
06 A0 FF         Usage Page (65440)
09 03            Usage  (3)
A1 01            Collection (Application)
85 14            Report ID (20)
09 B1            Usage (177)
09 B2            Usage (178)
09 B5            Usage (181)
09 B7            Usage (183)
09 B3            Usage (179)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
81 06            Input (0x06)
85 1F            Report ID (31)
09 9C            Usage (156)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
85 03            Report ID (3)
09 30            Usage (48)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 15            Report ID (21)
09 8C            Usage (140)
15 00            Logical Minimum (0)
27 FF FF 00 00   Logical Maximum (65535)
75 10            Report Size (16)
95 01            Report Count (1)
81 22            Input (0x22)
85 19            Report ID (25)
09 8D            Usage (141)
09 8F            Usage (143)
09 9E            Usage (158)
09 DC            Usage (220)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 04            Report Count (4)
91 22            Output (0x22)
09 D2            Usage (210)
09 D9            Usage (217)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
91 06            Output (0x06)
85 1A            Report ID (26)
09 B5            Usage (181)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
85 03            Report ID (3)
09 30            Usage (48)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
91 02            Output (0x02)
85 1B            Report ID (27)
09 CF            Usage (207)
09 B5            Usage (181)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
B1 22            Feature (0x22)
09 DE            Usage (222)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 23            Feature (0x23)
09 D8            Usage (216)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 22            Feature (0x22)
75 04            Report Size (4)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
09 09            Usage (9)
09 17            Usage (23)
09 18            Usage (24)
09 1E            Usage (30)
09 20            Usage (32)
09 2A            Usage (42)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 06            Report Count (6)
B1 22            Feature (0x22)
75 03            Report Size (3)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 02            Report Size (2)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 07            Report Size (7)
95 01            Report Count (1)
91 03            Output (0x03) Padding
75 02            Report Size (2)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
(235 bytes)
0x06, 0xa0, 0xff, 0x09, 0x03, 0xa1, 0x01, 0x85, 0x14, 0x09,
0xb1, 0x09, 0xb2, 0x09, 0xb5, 0x09, 0xb7, 0x09, 0xb3, 0x15,
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x81, 0x06, 0x85,
0x1f, 0x09, 0x9c, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
0x01, 0x81, 0x06, 0x85, 0x03, 0x09, 0x30, 0x15, 0x00, 0x25,
0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x15, 0x09,
0x8c, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x75, 0x10,
0x95, 0x01, 0x81, 0x22, 0x85, 0x19, 0x09, 0x8d, 0x09, 0x8f,
0x09, 0x9e, 0x09, 0xdc, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x04, 0x91, 0x22, 0x09, 0xd2, 0x09, 0xd9, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x91, 0x06, 0x85, 0x1a,
0x09, 0xb5, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01,
0x91, 0x22, 0x85, 0x03, 0x09, 0x30, 0x15, 0x00, 0x25, 0x01,
0x75, 0x08, 0x95, 0x20, 0x91, 0x02, 0x85, 0x1b, 0x09, 0xcf,
0x09, 0xb5, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02,
0xb1, 0x22, 0x09, 0xde, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x01, 0xb1, 0x23, 0x09, 0xd8, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x01, 0xb1, 0x22, 0x75, 0x04, 0x95, 0x01,
0xb1, 0x03, 0x09, 0x09, 0x09, 0x17, 0x09, 0x18, 0x09, 0x1e,
0x09, 0x20, 0x09, 0x2a, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x06, 0xb1, 0x22, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03,
0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x75, 0x02, 0x95, 0x01,
0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x02,
0x95, 0x01, 0xb1, 0x03, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x1 (0xff01)
  Report Descriptor:
06 01 FF         Usage Page (65281)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
09 01            Usage (1)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 1B            Report Count (27)
81 02            Input (0x02)
85 04            Report ID (4)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 1B            Report Count (27)
81 02            Input (0x02)
85 06            Report ID (6)
09 04            Usage (4)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 07            Report Count (7)
81 02            Input (0x02)
85 05            Report ID (5)
09 03            Usage (3)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 07            Report Count (7)
B1 02            Feature (0x02)
C0               End Collection
(80 bytes)
0x06, 0x01, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x09,
0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff,
0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08,
0x95, 0x1b, 0x81, 0x02, 0x85, 0x04, 0x09, 0x02, 0x15, 0x00,
0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85,
0x06, 0x09, 0x04, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08,
0x95, 0x07, 0x81, 0x02, 0x85, 0x05, 0x09, 0x03, 0x15, 0x00,
0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0xb1, 0x02, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_00#7&1c54b96&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    0
  Usage (page): 0x6 (0x1)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
19 00            Usage Minimum (0)
29 A4            Usage Maximum (164)
15 00            Logical Minimum (0)
26 A4 00         Logical Maximum (164)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
91 02            Output (0x02)
75 03            Report Size (3)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(66 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0,
0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08,
0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00,
0x29, 0xa4, 0x15, 0x00, 0x26, 0xa4, 0x00, 0x75, 0x08, 0x95,
0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15,
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75,
0x03, 0x95, 0x01, 0x91, 0x03, 0xc0,

Device Found
  type: 413c 2107
  path: \\?\hid#vid_413c&pid_2107#e&1de7f0c0&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer: DELL
  Product:      Dell USB Entry Keyboard
  Release:      178
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL
HIDP_STATUS_BUFFER_TOO_SMALL

05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
19 00            Usage Minimum (0)
29 FF            Usage Maximum (255)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
91 02            Output (0x02)
Report Size (-8)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 2F            Report Size (47)
95 01            Report Count (1)
81 03            Input (0x03) Padding
Report Size (-41)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 01            Report Size (1)
95 01            Report Count (1)
81 03            Input (0x03) Padding
75 05            Report Size (5)
95 01            Report Count (1)
91 03            Output (0x03) Padding
C0               End Collection
(80 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0,
0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08,
0x81, 0x02, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff,
0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19,
0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
0x03, 0x91, 0x02, 0x95, 0x01, 0x81, 0x03, 0x75, 0x2f, 0x95,
0x01, 0x81, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x01, 0x95,
0x01, 0x81, 0x03, 0x75, 0x05, 0x95, 0x01, 0x91, 0x03, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x1 (0xff02)
  Report Descriptor:
06 02 FF         Usage Page (65282)
09 01            Usage  (1)
A1 01            Collection (Application)
85 07            Report ID (7)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 86            Report Count (134)
B1 02            Feature (0x02)
C0               End Collection
(35 bytes)
0x06, 0x02, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x07, 0x09,
0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff,
0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08,
0x95, 0x86, 0xb1, 0x02, 0xc0,

Device Found
  type: 046d c077
  path: \\?\hid#vid_046d&pid_c077#e&fde55df&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Optical Mouse
  Release:      7200
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)
95 01            Report Count (1)
81 03            Input (0x03) Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 03            Report Count (3)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(52 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01,
0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38,
0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06,
0xc0, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0xe (0xd)
  Report Descriptor:
05 0D            Usage Page (13)
09 0E            Usage  (14)
A1 01            Collection (Application)
09 22            Usage  (34)
A1 02            Collection (Logical)
85 0B            Report ID (11)
09 52            Usage (82)
15 00            Logical Minimum (0)
25 0A            Logical Maximum (10)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 01            Report Count (1)
B1 02            Feature (0x02)
C0               End Collection
09 22            Usage  (34)
A1 00            Collection (Physical)
85 0C            Report ID (12)
09 57            Usage (87)
09 58            Usage (88)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
B1 02            Feature (0x02)
75 06            Report Size (6)
95 01            Report Count (1)
B1 03            Feature (0x03) Padding
C0               End Collection
C0               End Collection
(71 bytes)
0x05, 0x0d, 0x09, 0x0e, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02,
0x85, 0x0b, 0x09, 0x52, 0x15, 0x00, 0x25, 0x0a, 0x35, 0x00,
0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10,
0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0xc0, 0x09, 0x22, 0xa1,
0x00, 0x85, 0x0c, 0x09, 0x57, 0x09, 0x58, 0x15, 0x00, 0x25,
0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65,
0x00, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0xb1, 0x03, 0xc0,
0xc0,

Device Found
  type: 413c b06f
  path: \\?\hid#vid_413c&pid_b06f#d&3624b04c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      101
  Interface:    -1
  Usage (page): 0xda (0xffda)
  Report Descriptor:
06 DA FF         Usage Page (65498)
09 DA            Usage  (218)
A1 01            Collection (Application)
09 DA            Usage (218)
19 01            Usage Minimum (1)
29 0E            Usage Maximum (14)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 0F            Report Count (15)
81 02            Input (0x02)
05 DA            Usage Page (218)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 05            Report Count (5)
91 02            Output (0x02)
C0               End Collection
(40 bytes)
0x06, 0xda, 0xff, 0x09, 0xda, 0xa1, 0x01, 0x09, 0xda, 0x19,
0x01, 0x29, 0x0e, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95,
0x0f, 0x81, 0x02, 0x05, 0xda, 0x19, 0x01, 0x29, 0x05, 0x15,
0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x05, 0x91, 0x02, 0xc0,

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
85 01            Report ID (1)
05 07            Usage Page (7)
09 69            Usage (105)
09 6A            Usage (106)
09 6B            Usage (107)
09 6C            Usage (108)
09 E3            Usage (227)
09 4C            Usage (76)
09 E2            Usage (226)
09 E0            Usage (224)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
C0               End Collection
(37 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x01, 0x05, 0x07,
0x09, 0x69, 0x09, 0x6a, 0x09, 0x6b, 0x09, 0x6c, 0x09, 0xe3,
0x09, 0x4c, 0x09, 0xe2, 0x09, 0xe0, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0xc0,

unable to open device
Full debug log with the latest git with quite some devices attached, including the Logitech USB Receiver, Dell USB Mouse, Dell USB Keyboard and the Plantronics USB headset. <details> <summary> Click to expand for the full debug log </summary> ``` C:\work\hid\hidapi_test1\windows\x64\Release [windows_report_descriptor_reconstructor ≡]> .\hidtest.exe hidapi test/example tool. Compiled with hidapi version 0.11.0, runtime version 0.11.0. Compile-time version matches runtime version of hidapi. Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&383a3a17&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 02 Report ID (2) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 10 Usage Maximum (16) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 10 Report Count (16) 81 02 Input (0x02) 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 01 F8 Logical Minimum (-2047) 26 FF 07 Logical Maximum (2047) 75 0C Report Size (12) 95 02 Report Count (2) 81 06 Input (0x06) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection (75 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07, 0x75, 0x0c, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&383a3a17&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xc) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 19 01 Usage Minimum (1) 2A 8C 02 Usage Maximum (652) 15 01 Logical Minimum (1) 26 8C 02 Logical Maximum (652) 75 10 Report Size (16) 95 02 Report Count (2) 81 00 Input (0x00) C0 End Collection (25 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x01, 0x2a, 0x8c, 0x02, 0x15, 0x01, 0x26, 0x8c, 0x02, 0x75, 0x10, 0x95, 0x02, 0x81, 0x00, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&383a3a17&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x80 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 04 Report ID (4) 09 83 Usage (131) 09 81 Usage (129) 09 82 Usage (130) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 60 Input (0x60) C0 End Collection (25 bytes) 0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x04, 0x09, 0x83, 0x09, 0x81, 0x09, 0x82, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x60, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&383a3a17&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 10 Report ID (16) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection (34 bytes) 0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x10, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x00, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x00, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 01 Report ID (1) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 03 Report Count (3) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection (69 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x01, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 8087 0a1e path: \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 200 Interface: -1 Usage (page): 0xc (0x1) Report Descriptor: 05 01 Usage Page (1) 09 0C Usage (12) A1 01 Collection (Application) 85 08 Report ID (8) 09 C6 Usage (198) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (27 bytes) 0x05, 0x01, 0x09, 0x0c, 0xa1, 0x01, 0x85, 0x08, 0x09, 0xc6, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 044e 1212 path: \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 85 07 Report ID (7) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 75 Usage Maximum (117) 15 00 Logical Minimum (0) 25 75 Logical Maximum (117) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) C0 End Collection (45 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x07, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 0x29, 0x75, 0x15, 0x00, 0x25, 0x75, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&383a3a17&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 02 Usage (2) A1 01 Collection (Application) 85 11 Report ID (17) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection (34 bytes) 0x06, 0x00, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x11, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x00, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x00, 0xc0, Device Found type: 8087 0a1e path: \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 200 Interface: -1 Usage (page): 0xd (0x1) Report Descriptor: 05 01 Usage Page (1) 09 0D Usage (13) A1 01 Collection (Application) 09 0D Usage (13) A1 02 Collection (Logical) 85 1C Report ID (28) 09 81 Usage (129) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 09 CB Usage (203) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 02 Feature (0x02) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection (50 bytes) 0x05, 0x01, 0x09, 0x0d, 0xa1, 0x01, 0x09, 0x0d, 0xa1, 0x02, 0x85, 0x1c, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x09, 0xcb, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x02, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0, Device Found type: 044e 1212 path: \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 06 Report ID (6) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 00 FE Logical Minimum (-512) 26 00 02 Logical Maximum (512) 75 10 Report Size (16) 95 02 Report Count (2) 81 06 Input (0x06) C0 End Collection C0 End Collection (54 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x06, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x00, 0xfe, 0x26, 0x00, 0x02, 0x75, 0x10, 0x95, 0x02, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x5 (0xd) Report Descriptor: 05 0D Usage Page (13) 09 05 Usage (5) A1 01 Collection (Application) 09 22 Usage (34) A1 02 Collection (Logical) 85 08 Report ID (8) 09 47 Usage (71) 09 42 Usage (66) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 02 Input (0x02) 09 51 Usage (81) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 75 03 Report Size (3) 95 01 Report Count (1) 81 02 Input (0x02) 75 03 Report Size (3) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 15 00 Logical Minimum (0) 26 AF 04 Logical Maximum (1199) 35 00 Physical Minimum (0) 46 E8 03 Physical Maximum (1000) 55 0E Unit Exponent (14) 65 11 Unit (17) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 31 Usage (49) 15 00 Logical Minimum (0) 26 7B 02 Logical Maximum (635) 35 00 Physical Minimum (0) 46 12 02 Physical Maximum (530) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) C0 End Collection 05 0D Usage Page (13) 09 56 Usage (86) 15 00 Logical Minimum (0) 27 FF FF 00 00 Logical Maximum (65535) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 54 Usage (84) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) 05 09 Usage Page (9) 09 02 Usage (2) 09 03 Usage (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) 81 02 Input (0x02) 85 09 Report ID (9) 05 0D Usage Page (13) 09 55 Usage (85) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 01 Report Count (1) B1 02 Feature (0x02) 85 0A Report ID (10) 06 00 FF Usage Page (65280) 09 C5 Usage (197) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 96 00 01 Report Count (256) B1 02 Feature (0x02) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (204 bytes) 0x05, 0x0d, 0x09, 0x05, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02, 0x85, 0x08, 0x09, 0x47, 0x09, 0x42, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x02, 0x09, 0x51, 0x15, 0x00, 0x25, 0x05, 0x75, 0x03, 0x95, 0x01, 0x81, 0x02, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x15, 0x00, 0x26, 0xaf, 0x04, 0x35, 0x00, 0x46, 0xe8, 0x03, 0x55, 0x0e, 0x65, 0x11, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x31, 0x15, 0x00, 0x26, 0x7b, 0x02, 0x35, 0x00, 0x46, 0x12, 0x02, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0xc0, 0x05, 0x0d, 0x09, 0x56, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x54, 0x15, 0x00, 0x25, 0x05, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x05, 0x09, 0x09, 0x02, 0x09, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0x81, 0x02, 0x85, 0x09, 0x05, 0x0d, 0x09, 0x55, 0x15, 0x00, 0x25, 0x05, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0x85, 0x0a, 0x06, 0x00, 0xff, 0x09, 0xc5, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x96, 0x00, 0x01, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 413c b06e path: \\?\hid#vid_413c&pid_b06e#c&37ff1248&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 101 Interface: -1 Usage (page): 0xda (0xffda) Report Descriptor: 06 DA FF Usage Page (65498) 09 DA Usage (218) A1 01 Collection (Application) 09 DA Usage (218) 19 01 Usage Minimum (1) 29 0E Usage Maximum (14) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 0F Report Count (15) 81 02 Input (0x02) 05 DA Usage Page (218) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 05 Report Count (5) 91 02 Output (0x02) C0 End Collection (40 bytes) 0x06, 0xda, 0xff, 0x09, 0xda, 0xa1, 0x01, 0x09, 0xda, 0x19, 0x01, 0x29, 0x0e, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x0f, 0x81, 0x02, 0x05, 0xda, 0x19, 0x01, 0x29, 0x05, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x05, 0x91, 0x02, 0xc0, Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col01#f&39e6f119&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 01 Report ID (1) 09 E9 Usage (233) 09 EA Usage (234) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 06 Input (0x06) 85 02 Report ID (2) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 85 05 Report ID (5) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 07 Report ID (7) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 04 Report ID (4) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 24 Report Count (36) 91 02 Output (0x02) 85 06 Report ID (6) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 24 Report Count (36) 91 02 Output (0x02) 75 06 Report Size (6) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (99 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x01, 0x09, 0xe9, 0x09, 0xea, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x06, 0x85, 0x02, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x85, 0x05, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x07, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x04, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0x85, 0x06, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 02 Report ID (2) 09 E9 Usage (233) 09 EA Usage (234) 0A 21 02 Usage (545) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (32 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x02, 0x09, 0xe9, 0x09, 0xea, 0x0a, 0x21, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col02#f&39e6f119&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x5 (0xb) Report Descriptor: 05 0B Usage Page (11) 09 05 Usage (5) A1 01 Collection (Application) 85 08 Report ID (8) 09 2F Usage (47) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 09 20 Usage (32) 09 21 Usage (33) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 22 Input (0x22) 85 09 Report ID (9) 05 08 Usage Page (8) 09 09 Usage (9) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 17 Report ID (23) 09 17 Usage (23) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 18 Report ID (24) 09 18 Usage (24) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 1E Report ID (30) 09 1E Usage (30) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 20 Report ID (32) 09 20 Usage (32) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 2A Report ID (42) 09 2A Usage (42) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (163 bytes) 0x05, 0x0b, 0x09, 0x05, 0xa1, 0x01, 0x85, 0x08, 0x09, 0x2f, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 0x09, 0x20, 0x09, 0x21, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x22, 0x85, 0x09, 0x05, 0x08, 0x09, 0x09, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x17, 0x09, 0x17, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x18, 0x09, 0x18, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x1e, 0x09, 0x1e, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x20, 0x09, 0x20, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x2a, 0x09, 0x2a, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x80 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 03 Report ID (3) 09 81 Usage (129) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding C0 End Collection (27 bytes) 0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col03#f&39e6f119&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x3 (0xffa0) Report Descriptor: 06 A0 FF Usage Page (65440) 09 03 Usage (3) A1 01 Collection (Application) 85 14 Report ID (20) 09 B1 Usage (177) 09 B2 Usage (178) 09 B5 Usage (181) 09 B7 Usage (183) 09 B3 Usage (179) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 81 06 Input (0x06) 85 1F Report ID (31) 09 9C Usage (156) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 85 03 Report ID (3) 09 30 Usage (48) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 15 Report ID (21) 09 8C Usage (140) 15 00 Logical Minimum (0) 27 FF FF 00 00 Logical Maximum (65535) 75 10 Report Size (16) 95 01 Report Count (1) 81 22 Input (0x22) 85 19 Report ID (25) 09 8D Usage (141) 09 8F Usage (143) 09 9E Usage (158) 09 DC Usage (220) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 04 Report Count (4) 91 22 Output (0x22) 09 D2 Usage (210) 09 D9 Usage (217) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 91 06 Output (0x06) 85 1A Report ID (26) 09 B5 Usage (181) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 85 03 Report ID (3) 09 30 Usage (48) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 91 02 Output (0x02) 85 1B Report ID (27) 09 CF Usage (207) 09 B5 Usage (181) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) B1 22 Feature (0x22) 09 DE Usage (222) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 23 Feature (0x23) 09 D8 Usage (216) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 22 Feature (0x22) 75 04 Report Size (4) 95 01 Report Count (1) B1 03 Feature (0x03) Padding 09 09 Usage (9) 09 17 Usage (23) 09 18 Usage (24) 09 1E Usage (30) 09 20 Usage (32) 09 2A Usage (42) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 06 Report Count (6) B1 22 Feature (0x22) 75 03 Report Size (3) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 02 Report Size (2) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 07 Report Size (7) 95 01 Report Count (1) 91 03 Output (0x03) Padding 75 02 Report Size (2) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection (235 bytes) 0x06, 0xa0, 0xff, 0x09, 0x03, 0xa1, 0x01, 0x85, 0x14, 0x09, 0xb1, 0x09, 0xb2, 0x09, 0xb5, 0x09, 0xb7, 0x09, 0xb3, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x81, 0x06, 0x85, 0x1f, 0x09, 0x9c, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 0x85, 0x03, 0x09, 0x30, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x15, 0x09, 0x8c, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x75, 0x10, 0x95, 0x01, 0x81, 0x22, 0x85, 0x19, 0x09, 0x8d, 0x09, 0x8f, 0x09, 0x9e, 0x09, 0xdc, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x04, 0x91, 0x22, 0x09, 0xd2, 0x09, 0xd9, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x91, 0x06, 0x85, 0x1a, 0x09, 0xb5, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x85, 0x03, 0x09, 0x30, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x91, 0x02, 0x85, 0x1b, 0x09, 0xcf, 0x09, 0xb5, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0xb1, 0x22, 0x09, 0xde, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x23, 0x09, 0xd8, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x22, 0x75, 0x04, 0x95, 0x01, 0xb1, 0x03, 0x09, 0x09, 0x09, 0x17, 0x09, 0x18, 0x09, 0x1e, 0x09, 0x20, 0x09, 0x2a, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x06, 0xb1, 0x22, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x75, 0x02, 0x95, 0x01, 0x91, 0x03, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x75, 0x02, 0x95, 0x01, 0xb1, 0x03, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x1 (0xff01) Report Descriptor: 06 01 FF Usage Page (65281) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 09 01 Usage (1) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 1B Report Count (27) 81 02 Input (0x02) 85 04 Report ID (4) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 1B Report Count (27) 81 02 Input (0x02) 85 06 Report ID (6) 09 04 Usage (4) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 07 Report Count (7) 81 02 Input (0x02) 85 05 Report ID (5) 09 03 Usage (3) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 07 Report Count (7) B1 02 Feature (0x02) C0 End Collection (80 bytes) 0x06, 0x01, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85, 0x04, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85, 0x06, 0x09, 0x04, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0x81, 0x02, 0x85, 0x05, 0x09, 0x03, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0xb1, 0x02, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_00#7&1c54b96&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 0 Usage (page): 0x6 (0x1) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 A4 Usage Maximum (164) 15 00 Logical Minimum (0) 26 A4 00 Logical Maximum (164) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 91 02 Output (0x02) 75 03 Report Size (3) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (66 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 0x29, 0xa4, 0x15, 0x00, 0x26, 0xa4, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75, 0x03, 0x95, 0x01, 0x91, 0x03, 0xc0, Device Found type: 413c 2107 path: \\?\hid#vid_413c&pid_2107#e&1de7f0c0&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: DELL Product: Dell USB Entry Keyboard Release: 178 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: HIDP_STATUS_BUFFER_TOO_SMALL HIDP_STATUS_BUFFER_TOO_SMALL 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 19 00 Usage Minimum (0) 29 FF Usage Maximum (255) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 91 02 Output (0x02) Report Size (-8) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 2F Report Size (47) 95 01 Report Count (1) 81 03 Input (0x03) Padding Report Size (-41) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 01 Report Size (1) 95 01 Report Count (1) 81 03 Input (0x03) Padding 75 05 Report Size (5) 95 01 Report Count (1) 91 03 Output (0x03) Padding C0 End Collection (80 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x19, 0x00, 0x29, 0xff, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x95, 0x01, 0x81, 0x03, 0x75, 0x2f, 0x95, 0x01, 0x81, 0x03, 0x95, 0x01, 0x81, 0x03, 0x75, 0x01, 0x95, 0x01, 0x81, 0x03, 0x75, 0x05, 0x95, 0x01, 0x91, 0x03, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x1 (0xff02) Report Descriptor: 06 02 FF Usage Page (65282) 09 01 Usage (1) A1 01 Collection (Application) 85 07 Report ID (7) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 86 Report Count (134) B1 02 Feature (0x02) C0 End Collection (35 bytes) 0x06, 0x02, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x07, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x86, 0xb1, 0x02, 0xc0, Device Found type: 046d c077 path: \\?\hid#vid_046d&pid_c077#e&fde55df&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Optical Mouse Release: 7200 Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) 95 01 Report Count (1) 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 03 Report Count (3) 81 06 Input (0x06) C0 End Collection C0 End Collection (52 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0xe (0xd) Report Descriptor: 05 0D Usage Page (13) 09 0E Usage (14) A1 01 Collection (Application) 09 22 Usage (34) A1 02 Collection (Logical) 85 0B Report ID (11) 09 52 Usage (82) 15 00 Logical Minimum (0) 25 0A Logical Maximum (10) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 01 Report Count (1) B1 02 Feature (0x02) C0 End Collection 09 22 Usage (34) A1 00 Collection (Physical) 85 0C Report ID (12) 09 57 Usage (87) 09 58 Usage (88) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) B1 02 Feature (0x02) 75 06 Report Size (6) 95 01 Report Count (1) B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection (71 bytes) 0x05, 0x0d, 0x09, 0x0e, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02, 0x85, 0x0b, 0x09, 0x52, 0x15, 0x00, 0x25, 0x0a, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0xc0, 0x09, 0x22, 0xa1, 0x00, 0x85, 0x0c, 0x09, 0x57, 0x09, 0x58, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0, Device Found type: 413c b06f path: \\?\hid#vid_413c&pid_b06f#d&3624b04c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 101 Interface: -1 Usage (page): 0xda (0xffda) Report Descriptor: 06 DA FF Usage Page (65498) 09 DA Usage (218) A1 01 Collection (Application) 09 DA Usage (218) 19 01 Usage Minimum (1) 29 0E Usage Maximum (14) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 0F Report Count (15) 81 02 Input (0x02) 05 DA Usage Page (218) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 05 Report Count (5) 91 02 Output (0x02) C0 End Collection (40 bytes) 0x06, 0xda, 0xff, 0x09, 0xda, 0xa1, 0x01, 0x09, 0xda, 0x19, 0x01, 0x29, 0x0e, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x0f, 0x81, 0x02, 0x05, 0xda, 0x19, 0x01, 0x29, 0x05, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x05, 0x91, 0x02, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 85 01 Report ID (1) 05 07 Usage Page (7) 09 69 Usage (105) 09 6A Usage (106) 09 6B Usage (107) 09 6C Usage (108) 09 E3 Usage (227) 09 4C Usage (76) 09 E2 Usage (226) 09 E0 Usage (224) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) C0 End Collection (37 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x01, 0x05, 0x07, 0x09, 0x69, 0x09, 0x6a, 0x09, 0x6b, 0x09, 0x6c, 0x09, 0xe3, 0x09, 0x4c, 0x09, 0xe2, 0x09, 0xe0, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0xc0, unable to open device ``` </details>
mcuee commented 2021-07-26 22:12:21 -05:00 (Migrated from github.com)

Latest run log for your reference.

Click to expand for the run log

C:\work\hid\hidapi_test1\windows\x64\Release [windows_report_descriptor_reconstructor ≡]> .\hidtest.exe
hidapi test/example tool. Compiled with hidapi version 0.11.0, runtime version 0.11.0.
Compile-time version matches runtime version of hidapi.

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&383a3a17&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 02            Report ID (2)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 10            Usage Maximum (16)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 10            Report Count (16)
81 02            Input (0x02)
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 01 F8         Logical Minimum (-2047)
26 FF 07         Logical Maximum (2047)
75 0C            Report Size (12)
95 02            Report Count (2)
81 06            Input (0x06)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(75 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01,
0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07,
0x75, 0x0c, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81,
0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c,
0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95,
0x01, 0x81, 0x06, 0xc0, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&383a3a17&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xc)
  Report Descriptor:
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
19 01            Usage Minimum (1)
2A 8C 02         Usage Maximum (652)
15 01            Logical Minimum (1)
26 8C 02         Logical Maximum (652)
75 10            Report Size (16)
95 02            Report Count (2)
81 00            Input (0x00)
C0               End Collection
(25 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x01,
0x2a, 0x8c, 0x02, 0x15, 0x01, 0x26, 0x8c, 0x02, 0x75, 0x10,
0x95, 0x02, 0x81, 0x00, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&383a3a17&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x80 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 04            Report ID (4)
09 83            Usage (131)
09 81            Usage (129)
09 82            Usage (130)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 60            Input (0x60)
C0               End Collection
(25 bytes)
0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x04, 0x09, 0x83,
0x09, 0x81, 0x09, 0x82, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x03, 0x81, 0x60, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&383a3a17&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x1 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
09 01            Usage  (1)
A1 01            Collection (Application)
85 10            Report ID (16)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 01            Usage (1)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
(34 bytes)
0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x10, 0x09,
0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81,
0x00, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
0x01, 0x91, 0x00, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 01            Report ID (1)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
09 38            Usage (56)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 03            Report Count (3)
81 06            Input (0x06)
05 0C            Usage Page (12)
0A 38 02         Usage (568)
15 81            Logical Minimum (-127)
25 7F            Logical Maximum (127)
75 08            Report Size (8)
95 01            Report Count (1)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(69 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x85, 0x01, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05,
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31,
0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03,
0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25,
0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0,

Device Found
  type: 8087 0a1e
  path: \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      200
  Interface:    -1
  Usage (page): 0xc (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 0C            Usage  (12)
A1 01            Collection (Application)
85 08            Report ID (8)
09 C6            Usage (198)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
C0               End Collection
(27 bytes)
0x05, 0x01, 0x09, 0x0c, 0xa1, 0x01, 0x85, 0x08, 0x09, 0xc6,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06,
0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0,

Device Found
  type: 044e 1212
  path: \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
85 07            Report ID (7)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
19 00            Usage Minimum (0)
29 75            Usage Maximum (117)
15 00            Logical Minimum (0)
25 75            Logical Maximum (117)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
C0               End Collection
(45 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x07, 0x05, 0x07,
0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03,
0x19, 0x00, 0x29, 0x75, 0x15, 0x00, 0x25, 0x75, 0x75, 0x08,
0x95, 0x06, 0x81, 0x00, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&383a3a17&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    1
  Usage (page): 0x2 (0xff00)
  Report Descriptor:
06 00 FF         Usage Page (65280)
09 02            Usage  (2)
A1 01            Collection (Application)
85 11            Report ID (17)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 00            Input (0x00)
09 02            Usage (2)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 00            Output (0x00)
C0               End Collection
(34 bytes)
0x06, 0x00, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x11, 0x09,
0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81,
0x00, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
0x01, 0x91, 0x00, 0xc0,

Device Found
  type: 8087 0a1e
  path: \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      200
  Interface:    -1
  Usage (page): 0xd (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 0D            Usage  (13)
A1 01            Collection (Application)
09 0D            Usage  (13)
A1 02            Collection (Logical)
85 1C            Report ID (28)
09 81            Usage (129)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
09 CB            Usage (203)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 02            Feature (0x02)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
B1 03            Feature (0x03)   Padding
C0               End Collection
C0               End Collection
(50 bytes)
0x05, 0x01, 0x09, 0x0d, 0xa1, 0x01, 0x09, 0x0d, 0xa1, 0x02,
0x85, 0x1c, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x01, 0x81, 0x02, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03,
0x09, 0xcb, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01,
0xb1, 0x02, 0x75, 0x07, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0,

Device Found
  type: 044e 1212
  path: \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x2 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 02            Usage  (2)
A1 01            Collection (Application)
09 01            Usage  (1)
A1 00            Collection (Physical)
85 06            Report ID (6)
05 09            Usage Page (9)
19 01            Usage Minimum (1)
29 03            Usage Maximum (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
05 01            Usage Page (1)
09 30            Usage (48)
09 31            Usage (49)
16 00 FE         Logical Minimum (-512)
26 00 02         Logical Maximum (512)
75 10            Report Size (16)
95 02            Report Count (2)
81 06            Input (0x06)
C0               End Collection
C0               End Collection
(54 bytes)
0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00,
0x85, 0x06, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05,
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31,
0x16, 0x00, 0xfe, 0x26, 0x00, 0x02, 0x75, 0x10, 0x95, 0x02,
0x81, 0x06, 0xc0, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x5 (0xd)
  Report Descriptor:
05 0D            Usage Page (13)
09 05            Usage  (5)
A1 01            Collection (Application)
09 22            Usage  (34)
A1 02            Collection (Logical)
85 08            Report ID (8)
09 47            Usage (71)
09 42            Usage (66)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 02            Input (0x02)
09 51            Usage (81)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
75 03            Report Size (3)
95 01            Report Count (1)
81 02            Input (0x02)
75 03            Report Size (3)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
05 01            Usage Page (1)
09 30            Usage (48)
15 00            Logical Minimum (0)
26 AF 04         Logical Maximum (1199)
35 00            Physical Minimum (0)
46 E8 03         Physical Maximum (1000)
55 0E            Unit Exponent (14)
65 11            Unit (17)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 31            Usage (49)
15 00            Logical Minimum (0)
26 7B 02         Logical Maximum (635)
35 00            Physical Minimum (0)
46 12 02         Physical Maximum (530)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
C0               End Collection
05 0D            Usage Page (13)
09 56            Usage (86)
15 00            Logical Minimum (0)
27 FF FF 00 00   Logical Maximum (65535)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 10            Report Size (16)
95 01            Report Count (1)
81 02            Input (0x02)
09 54            Usage (84)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
75 08            Report Size (8)
95 01            Report Count (1)
81 02            Input (0x02)
05 09            Usage Page (9)
09 02            Usage (2)
09 03            Usage (3)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
81 02            Input (0x02)
75 06            Report Size (6)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
85 09            Report ID (9)
05 0D            Usage Page (13)
09 55            Usage (85)
15 00            Logical Minimum (0)
25 05            Logical Maximum (5)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 01            Report Count (1)
B1 02            Feature (0x02)
85 0A            Report ID (10)
06 00 FF         Usage Page (65280)
09 C5            Usage (197)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
96 00 01         Report Count (256)
B1 02            Feature (0x02)
C0               End Collection
(204 bytes)
0x05, 0x0d, 0x09, 0x05, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02,
0x85, 0x08, 0x09, 0x47, 0x09, 0x42, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x02, 0x81, 0x02, 0x09, 0x51, 0x15, 0x00,
0x25, 0x05, 0x75, 0x03, 0x95, 0x01, 0x81, 0x02, 0x75, 0x03,
0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x15, 0x00,
0x26, 0xaf, 0x04, 0x35, 0x00, 0x46, 0xe8, 0x03, 0x55, 0x0e,
0x65, 0x11, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x31,
0x15, 0x00, 0x26, 0x7b, 0x02, 0x35, 0x00, 0x46, 0x12, 0x02,
0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0xc0, 0x05, 0x0d, 0x09,
0x56, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x35, 0x00,
0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10,
0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x54, 0x15, 0x00,
0x25, 0x05, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x05, 0x09,
0x09, 0x02, 0x09, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0x81, 0x02,
0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0x85, 0x09, 0x05, 0x0d,
0x09, 0x55, 0x15, 0x00, 0x25, 0x05, 0x35, 0x00, 0x47, 0xff,
0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08,
0x95, 0x01, 0xb1, 0x02, 0x85, 0x0a, 0x06, 0x00, 0xff, 0x09,
0xc5, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x96, 0x00,
0x01, 0xb1, 0x02, 0xc0,

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col01#f&39e6f119&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x1 (0xc)
  Report Descriptor:
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 01            Report ID (1)
09 E9            Usage (233)
09 EA            Usage (234)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 06            Input (0x06)
75 06            Report Size (6)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
85 02            Report ID (2)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
85 05            Report ID (5)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 07            Report ID (7)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 04            Report ID (4)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 24            Report Count (36)
91 02            Output (0x02)
85 06            Report ID (6)
09 00            Usage (0)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 24            Report Count (36)
91 02            Output (0x02)
C0               End Collection
(99 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x01, 0x09, 0xe9,
0x09, 0xea, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02,
0x81, 0x06, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0x85, 0x02,
0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01,
0x81, 0x02, 0x85, 0x05, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01,
0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x07, 0x09, 0x00,
0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02,
0x85, 0x04, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08,
0x95, 0x24, 0x91, 0x02, 0x85, 0x06, 0x09, 0x00, 0x15, 0x00,
0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0xc0,

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x1 (0xc)
  Report Descriptor:
05 0C            Usage Page (12)
09 01            Usage  (1)
A1 01            Collection (Application)
85 02            Report ID (2)
09 E9            Usage (233)
09 EA            Usage (234)
0A 21 02         Usage (545)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 03            Report Count (3)
81 02            Input (0x02)
75 05            Report Size (5)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
C0               End Collection
(32 bytes)
0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x02, 0x09, 0xe9,
0x09, 0xea, 0x0a, 0x21, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75,
0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81,
0x03, 0xc0,

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col02#f&39e6f119&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x5 (0xb)
  Report Descriptor:
05 0B            Usage Page (11)
09 05            Usage  (5)
A1 01            Collection (Application)
85 08            Report ID (8)
09 2F            Usage (47)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
09 20            Usage (32)
09 21            Usage (33)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
81 22            Input (0x22)
75 05            Report Size (5)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
85 09            Report ID (9)
05 08            Usage Page (8)
09 09            Usage (9)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
91 03            Output (0x03)    Padding
85 17            Report ID (23)
09 17            Usage (23)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
91 03            Output (0x03)    Padding
85 18            Report ID (24)
09 18            Usage (24)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
91 03            Output (0x03)    Padding
85 1E            Report ID (30)
09 1E            Usage (30)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
91 03            Output (0x03)    Padding
85 20            Report ID (32)
09 20            Usage (32)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
91 03            Output (0x03)    Padding
85 2A            Report ID (42)
09 2A            Usage (42)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
91 03            Output (0x03)    Padding
C0               End Collection
(163 bytes)
0x05, 0x0b, 0x09, 0x05, 0xa1, 0x01, 0x85, 0x08, 0x09, 0x2f,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06,
0x09, 0x20, 0x09, 0x21, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
0x95, 0x02, 0x81, 0x22, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03,
0x85, 0x09, 0x05, 0x08, 0x09, 0x09, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
0x91, 0x03, 0x85, 0x17, 0x09, 0x17, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
0x91, 0x03, 0x85, 0x18, 0x09, 0x18, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
0x91, 0x03, 0x85, 0x1e, 0x09, 0x1e, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
0x91, 0x03, 0x85, 0x20, 0x09, 0x20, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
0x91, 0x03, 0x85, 0x2a, 0x09, 0x2a, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
0x91, 0x03, 0xc0,

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x80 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 80            Usage  (128)
A1 01            Collection (Application)
85 03            Report ID (3)
09 81            Usage (129)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 02            Input (0x02)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
C0               End Collection
(27 bytes)
0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x81,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02,
0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0,

Device Found
  type: 047f c056
  path: \\?\hid#vid_047f&pid_c056&mi_03&col03#f&39e6f119&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3
  Manufacturer: Plantronics
  Product:      Plantronics Blackwire 3220 Series
  Release:      210
  Interface:    3
  Usage (page): 0x3 (0xffa0)
  Report Descriptor:
06 A0 FF         Usage Page (65440)
09 03            Usage  (3)
A1 01            Collection (Application)
85 14            Report ID (20)
09 B1            Usage (177)
09 B2            Usage (178)
09 B5            Usage (181)
09 B7            Usage (183)
09 B3            Usage (179)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
81 06            Input (0x06)
75 03            Report Size (3)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
85 1F            Report ID (31)
09 9C            Usage (156)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
81 06            Input (0x06)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
85 03            Report ID (3)
09 30            Usage (48)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
81 02            Input (0x02)
85 15            Report ID (21)
09 8C            Usage (140)
15 00            Logical Minimum (0)
27 FF FF 00 00   Logical Maximum (65535)
75 10            Report Size (16)
95 01            Report Count (1)
81 22            Input (0x22)
85 19            Report ID (25)
09 8D            Usage (141)
09 8F            Usage (143)
09 9E            Usage (158)
09 DC            Usage (220)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 04            Report Count (4)
91 22            Output (0x22)
09 D2            Usage (210)
09 D9            Usage (217)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
91 06            Output (0x06)
75 02            Report Size (2)  Padding
95 01            Report Count (1) Padding
91 03            Output (0x03)    Padding
85 1A            Report ID (26)
09 B5            Usage (181)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
91 22            Output (0x22)
75 07            Report Size (7)  Padding
95 01            Report Count (1) Padding
91 03            Output (0x03)    Padding
85 03            Report ID (3)
09 30            Usage (48)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 08            Report Size (8)
95 20            Report Count (32)
91 02            Output (0x02)
85 1B            Report ID (27)
09 CF            Usage (207)
09 B5            Usage (181)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
B1 22            Feature (0x22)
09 DE            Usage (222)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 23            Feature (0x23)
09 D8            Usage (216)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 01            Report Count (1)
B1 22            Feature (0x22)
75 04            Report Size (4)  Padding
95 01            Report Count (1) Padding
B1 03            Feature (0x03)   Padding
09 09            Usage (9)
09 17            Usage (23)
09 18            Usage (24)
09 1E            Usage (30)
09 20            Usage (32)
09 2A            Usage (42)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 06            Report Count (6)
B1 22            Feature (0x22)
75 02            Report Size (2)  Padding
95 01            Report Count (1) Padding
B1 03            Feature (0x03)   Padding
C0               End Collection
(235 bytes)
0x06, 0xa0, 0xff, 0x09, 0x03, 0xa1, 0x01, 0x85, 0x14, 0x09,
0xb1, 0x09, 0xb2, 0x09, 0xb5, 0x09, 0xb7, 0x09, 0xb3, 0x15,
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x81, 0x06, 0x75,
0x03, 0x95, 0x01, 0x81, 0x03, 0x85, 0x1f, 0x09, 0x9c, 0x15,
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 0x75,
0x07, 0x95, 0x01, 0x81, 0x03, 0x85, 0x03, 0x09, 0x30, 0x15,
0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85,
0x15, 0x09, 0x8c, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00,
0x75, 0x10, 0x95, 0x01, 0x81, 0x22, 0x85, 0x19, 0x09, 0x8d,
0x09, 0x8f, 0x09, 0x9e, 0x09, 0xdc, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x04, 0x91, 0x22, 0x09, 0xd2, 0x09, 0xd9,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x91, 0x06,
0x75, 0x02, 0x95, 0x01, 0x91, 0x03, 0x85, 0x1a, 0x09, 0xb5,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22,
0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x85, 0x03, 0x09, 0x30,
0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x91, 0x02,
0x85, 0x1b, 0x09, 0xcf, 0x09, 0xb5, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x02, 0xb1, 0x22, 0x09, 0xde, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x23, 0x09, 0xd8,
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x22,
0x75, 0x04, 0x95, 0x01, 0xb1, 0x03, 0x09, 0x09, 0x09, 0x17,
0x09, 0x18, 0x09, 0x1e, 0x09, 0x20, 0x09, 0x2a, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x06, 0xb1, 0x22, 0x75, 0x02,
0x95, 0x01, 0xb1, 0x03, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x1 (0xff01)
  Report Descriptor:
06 01 FF         Usage Page (65281)
09 01            Usage  (1)
A1 01            Collection (Application)
85 03            Report ID (3)
09 01            Usage (1)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 1B            Report Count (27)
81 02            Input (0x02)
85 04            Report ID (4)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 1B            Report Count (27)
81 02            Input (0x02)
85 06            Report ID (6)
09 04            Usage (4)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 07            Report Count (7)
81 02            Input (0x02)
85 05            Report ID (5)
09 03            Usage (3)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
75 08            Report Size (8)
95 07            Report Count (7)
B1 02            Feature (0x02)
C0               End Collection
(80 bytes)
0x06, 0x01, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x09,
0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff,
0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08,
0x95, 0x1b, 0x81, 0x02, 0x85, 0x04, 0x09, 0x02, 0x15, 0x00,
0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85,
0x06, 0x09, 0x04, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08,
0x95, 0x07, 0x81, 0x02, 0x85, 0x05, 0x09, 0x03, 0x15, 0x00,
0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0xb1, 0x02, 0xc0,

Device Found
  type: 046d c534
  path: \\?\hid#vid_046d&pid_c534&mi_00#7&1c54b96&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer: Logitech
  Product:      USB Receiver
  Release:      2901
  Interface:    0
  Usage (page): 0x6 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
05 07            Usage Page (7)
19 E0            Usage Minimum (224)
29 E7            Usage Maximum (231)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
75 08            Report Size (8)  Padding
95 01            Report Count (1) Padding
81 03            Input (0x03)     Padding
19 00            Usage Minimum (0)
29 A4            Usage Maximum (164)
15 00            Logical Minimum (0)
26 A4 00         Logical Maximum (164)
75 08            Report Size (8)
95 06            Report Count (6)
81 00            Input (0x00)
05 08            Usage Page (8)
19 01            Usage Minimum (1)
29 05            Usage Maximum (5)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 05            Report Count (5)
91 02            Output (0x02)
75 03            Report Size (3)  Padding
95 01            Report Count (1) Padding
91 03            Output (0x03)    Padding
C0               End Collection
(66 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0,
0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08,
0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00,
0x29, 0xa4, 0x15, 0x00, 0x26, 0xa4, 0x00, 0x75, 0x08, 0x95,
0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15,
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75,
0x03, 0x95, 0x01, 0x91, 0x03, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0x1 (0xff02)
  Report Descriptor:
06 02 FF         Usage Page (65282)
09 01            Usage  (1)
A1 01            Collection (Application)
85 07            Report ID (7)
09 02            Usage (2)
15 00            Logical Minimum (0)
26 FF 00         Logical Maximum (255)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 86            Report Count (134)
B1 02            Feature (0x02)
C0               End Collection
(35 bytes)
0x06, 0x02, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x07, 0x09,
0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff,
0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08,
0x95, 0x86, 0xb1, 0x02, 0xc0,

Device Found
  type: 0488 121f
  path: \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
  serial_number: 9999
  Manufacturer: Microsoft
  Product:      HIDI2C Device
  Release:      40d
  Interface:    -1
  Usage (page): 0xe (0xd)
  Report Descriptor:
05 0D            Usage Page (13)
09 0E            Usage  (14)
A1 01            Collection (Application)
09 22            Usage  (34)
A1 02            Collection (Logical)
85 0B            Report ID (11)
09 52            Usage (82)
15 00            Logical Minimum (0)
25 0A            Logical Maximum (10)
35 00            Physical Minimum (0)
47 FF FF 00 00   Physical Maximum (65535)
55 0C            Unit Exponent (12)
66 01 10         Unit (4097)
75 08            Report Size (8)
95 01            Report Count (1)
B1 02            Feature (0x02)
C0               End Collection
09 22            Usage  (34)
A1 00            Collection (Physical)
85 0C            Report ID (12)
09 57            Usage (87)
09 58            Usage (88)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 02            Report Count (2)
45 00            Physical Maximum (0)
55 00            Unit Exponent (0)
65 00            Unit (0)
B1 02            Feature (0x02)
75 06            Report Size (6)  Padding
95 01            Report Count (1) Padding
B1 03            Feature (0x03)   Padding
C0               End Collection
C0               End Collection
(71 bytes)
0x05, 0x0d, 0x09, 0x0e, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02,
0x85, 0x0b, 0x09, 0x52, 0x15, 0x00, 0x25, 0x0a, 0x35, 0x00,
0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10,
0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0xc0, 0x09, 0x22, 0xa1,
0x00, 0x85, 0x0c, 0x09, 0x57, 0x09, 0x58, 0x15, 0x00, 0x25,
0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65,
0x00, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0xb1, 0x03, 0xc0,
0xc0,

Device Found
  type: 045e 0000
  path: \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
  serial_number:
  Manufacturer:
  Product:
  Release:      0
  Interface:    -1
  Usage (page): 0x6 (0x1)
  Report Descriptor:
05 01            Usage Page (1)
09 06            Usage  (6)
A1 01            Collection (Application)
85 01            Report ID (1)
05 07            Usage Page (7)
09 69            Usage (105)
09 6A            Usage (106)
09 6B            Usage (107)
09 6C            Usage (108)
09 E3            Usage (227)
09 4C            Usage (76)
09 E2            Usage (226)
09 E0            Usage (224)
15 00            Logical Minimum (0)
25 01            Logical Maximum (1)
75 01            Report Size (1)
95 08            Report Count (8)
81 02            Input (0x02)
C0               End Collection
(37 bytes)
0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x01, 0x05, 0x07,
0x09, 0x69, 0x09, 0x6a, 0x09, 0x6b, 0x09, 0x6c, 0x09, 0xe3,
0x09, 0x4c, 0x09, 0xe2, 0x09, 0xe0, 0x15, 0x00, 0x25, 0x01,
0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0xc0,

unable to open device
Latest run log for your reference. <details> <summary> Click to expand for the run log </summary> ``` C:\work\hid\hidapi_test1\windows\x64\Release [windows_report_descriptor_reconstructor ≡]> .\hidtest.exe hidapi test/example tool. Compiled with hidapi version 0.11.0, runtime version 0.11.0. Compile-time version matches runtime version of hidapi. Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col01#7&383a3a17&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 02 Report ID (2) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 10 Usage Maximum (16) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 10 Report Count (16) 81 02 Input (0x02) 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 01 F8 Logical Minimum (-2047) 26 FF 07 Logical Maximum (2047) 75 0C Report Size (12) 95 02 Report Count (2) 81 06 Input (0x06) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection (75 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07, 0x75, 0x0c, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col02#7&383a3a17&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 19 01 Usage Minimum (1) 2A 8C 02 Usage Maximum (652) 15 01 Logical Minimum (1) 26 8C 02 Logical Maximum (652) 75 10 Report Size (16) 95 02 Report Count (2) 81 00 Input (0x00) C0 End Collection (25 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x19, 0x01, 0x2a, 0x8c, 0x02, 0x15, 0x01, 0x26, 0x8c, 0x02, 0x75, 0x10, 0x95, 0x02, 0x81, 0x00, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col03#7&383a3a17&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x80 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 04 Report ID (4) 09 83 Usage (131) 09 81 Usage (129) 09 82 Usage (130) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 60 Input (0x60) C0 End Collection (25 bytes) 0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x04, 0x09, 0x83, 0x09, 0x81, 0x09, 0x82, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x60, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col04#7&383a3a17&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x1 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 01 Usage (1) A1 01 Collection (Application) 85 10 Report ID (16) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 01 Usage (1) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection (34 bytes) 0x06, 0x00, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x10, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x00, 0x09, 0x01, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x00, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col01#5&99b72d3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 01 Report ID (1) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 09 38 Usage (56) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 03 Report Count (3) 81 06 Input (0x06) 05 0C Usage Page (12) 0A 38 02 Usage (568) 15 81 Logical Minimum (-127) 25 7F Logical Maximum (127) 75 08 Report Size (8) 95 01 Report Count (1) 81 06 Input (0x06) C0 End Collection C0 End Collection (69 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x01, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x03, 0x81, 0x06, 0x05, 0x0c, 0x0a, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 8087 0a1e path: \\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 200 Interface: -1 Usage (page): 0xc (0x1) Report Descriptor: 05 01 Usage Page (1) 09 0C Usage (12) A1 01 Collection (Application) 85 08 Report ID (8) 09 C6 Usage (198) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding C0 End Collection (27 bytes) 0x05, 0x01, 0x09, 0x0c, 0xa1, 0x01, 0x85, 0x08, 0x09, 0xc6, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 044e 1212 path: \\?\hid#vid_044e&pid_1212&col01&col02#7&290aacae&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 85 07 Report ID (7) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 75 Usage Maximum (117) 15 00 Logical Minimum (0) 25 75 Logical Maximum (117) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) C0 End Collection (45 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x07, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 0x29, 0x75, 0x15, 0x00, 0x25, 0x75, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_01&col05#7&383a3a17&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 1 Usage (page): 0x2 (0xff00) Report Descriptor: 06 00 FF Usage Page (65280) 09 02 Usage (2) A1 01 Collection (Application) 85 11 Report ID (17) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 00 Input (0x00) 09 02 Usage (2) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 00 Output (0x00) C0 End Collection (34 bytes) 0x06, 0x00, 0xff, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x11, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x00, 0x09, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x00, 0xc0, Device Found type: 8087 0a1e path: \\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 200 Interface: -1 Usage (page): 0xd (0x1) Report Descriptor: 05 01 Usage Page (1) 09 0D Usage (13) A1 01 Collection (Application) 09 0D Usage (13) A1 02 Collection (Logical) 85 1C Report ID (28) 09 81 Usage (129) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 09 CB Usage (203) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 02 Feature (0x02) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection (50 bytes) 0x05, 0x01, 0x09, 0x0d, 0xa1, 0x01, 0x09, 0x0d, 0xa1, 0x02, 0x85, 0x1c, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x09, 0xcb, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x02, 0x75, 0x07, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0, Device Found type: 044e 1212 path: \\?\hid#vid_044e&pid_1212&col01&col01#7&290aacae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x2 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 02 Usage (2) A1 01 Collection (Application) 09 01 Usage (1) A1 00 Collection (Physical) 85 06 Report ID (6) 05 09 Usage Page (9) 19 01 Usage Minimum (1) 29 03 Usage Maximum (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 09 31 Usage (49) 16 00 FE Logical Minimum (-512) 26 00 02 Logical Maximum (512) 75 10 Report Size (16) 95 02 Report Count (2) 81 06 Input (0x06) C0 End Collection C0 End Collection (54 bytes) 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x06, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x00, 0xfe, 0x26, 0x00, 0x02, 0x75, 0x10, 0x95, 0x02, 0x81, 0x06, 0xc0, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col02#5&99b72d3&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x5 (0xd) Report Descriptor: 05 0D Usage Page (13) 09 05 Usage (5) A1 01 Collection (Application) 09 22 Usage (34) A1 02 Collection (Logical) 85 08 Report ID (8) 09 47 Usage (71) 09 42 Usage (66) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 02 Input (0x02) 09 51 Usage (81) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 75 03 Report Size (3) 95 01 Report Count (1) 81 02 Input (0x02) 75 03 Report Size (3) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 05 01 Usage Page (1) 09 30 Usage (48) 15 00 Logical Minimum (0) 26 AF 04 Logical Maximum (1199) 35 00 Physical Minimum (0) 46 E8 03 Physical Maximum (1000) 55 0E Unit Exponent (14) 65 11 Unit (17) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 31 Usage (49) 15 00 Logical Minimum (0) 26 7B 02 Logical Maximum (635) 35 00 Physical Minimum (0) 46 12 02 Physical Maximum (530) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) C0 End Collection 05 0D Usage Page (13) 09 56 Usage (86) 15 00 Logical Minimum (0) 27 FF FF 00 00 Logical Maximum (65535) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 10 Report Size (16) 95 01 Report Count (1) 81 02 Input (0x02) 09 54 Usage (84) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 75 08 Report Size (8) 95 01 Report Count (1) 81 02 Input (0x02) 05 09 Usage Page (9) 09 02 Usage (2) 09 03 Usage (3) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) 81 02 Input (0x02) 75 06 Report Size (6) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 85 09 Report ID (9) 05 0D Usage Page (13) 09 55 Usage (85) 15 00 Logical Minimum (0) 25 05 Logical Maximum (5) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 01 Report Count (1) B1 02 Feature (0x02) 85 0A Report ID (10) 06 00 FF Usage Page (65280) 09 C5 Usage (197) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 96 00 01 Report Count (256) B1 02 Feature (0x02) C0 End Collection (204 bytes) 0x05, 0x0d, 0x09, 0x05, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02, 0x85, 0x08, 0x09, 0x47, 0x09, 0x42, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x02, 0x09, 0x51, 0x15, 0x00, 0x25, 0x05, 0x75, 0x03, 0x95, 0x01, 0x81, 0x02, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x30, 0x15, 0x00, 0x26, 0xaf, 0x04, 0x35, 0x00, 0x46, 0xe8, 0x03, 0x55, 0x0e, 0x65, 0x11, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x31, 0x15, 0x00, 0x26, 0x7b, 0x02, 0x35, 0x00, 0x46, 0x12, 0x02, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0xc0, 0x05, 0x0d, 0x09, 0x56, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x54, 0x15, 0x00, 0x25, 0x05, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0x05, 0x09, 0x09, 0x02, 0x09, 0x03, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0x81, 0x02, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0x85, 0x09, 0x05, 0x0d, 0x09, 0x55, 0x15, 0x00, 0x25, 0x05, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0x85, 0x0a, 0x06, 0x00, 0xff, 0x09, 0xc5, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x96, 0x00, 0x01, 0xb1, 0x02, 0xc0, Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col01#f&39e6f119&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 01 Report ID (1) 09 E9 Usage (233) 09 EA Usage (234) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 06 Input (0x06) 75 06 Report Size (6) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 85 02 Report ID (2) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 85 05 Report ID (5) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 07 Report ID (7) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 04 Report ID (4) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 24 Report Count (36) 91 02 Output (0x02) 85 06 Report ID (6) 09 00 Usage (0) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 24 Report Count (36) 91 02 Output (0x02) C0 End Collection (99 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x01, 0x09, 0xe9, 0x09, 0xea, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x06, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0x85, 0x02, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x85, 0x05, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x07, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x04, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0x85, 0x06, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col02#5&379854aa&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x1 (0xc) Report Descriptor: 05 0C Usage Page (12) 09 01 Usage (1) A1 01 Collection (Application) 85 02 Report ID (2) 09 E9 Usage (233) 09 EA Usage (234) 0A 21 02 Usage (545) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 03 Report Count (3) 81 02 Input (0x02) 75 05 Report Size (5) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding C0 End Collection (32 bytes) 0x05, 0x0c, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x02, 0x09, 0xe9, 0x09, 0xea, 0x0a, 0x21, 0x02, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x81, 0x02, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col02#f&39e6f119&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x5 (0xb) Report Descriptor: 05 0B Usage Page (11) 09 05 Usage (5) A1 01 Collection (Application) 85 08 Report ID (8) 09 2F Usage (47) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 09 20 Usage (32) 09 21 Usage (33) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 81 22 Input (0x22) 75 05 Report Size (5) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 85 09 Report ID (9) 05 08 Usage Page (8) 09 09 Usage (9) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding 91 03 Output (0x03) Padding 85 17 Report ID (23) 09 17 Usage (23) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding 91 03 Output (0x03) Padding 85 18 Report ID (24) 09 18 Usage (24) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding 91 03 Output (0x03) Padding 85 1E Report ID (30) 09 1E Usage (30) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding 91 03 Output (0x03) Padding 85 20 Report ID (32) 09 20 Usage (32) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding 91 03 Output (0x03) Padding 85 2A Report ID (42) 09 2A Usage (42) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding 91 03 Output (0x03) Padding C0 End Collection (163 bytes) 0x05, 0x0b, 0x09, 0x05, 0xa1, 0x01, 0x85, 0x08, 0x09, 0x2f, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 0x09, 0x20, 0x09, 0x21, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x81, 0x22, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03, 0x85, 0x09, 0x05, 0x08, 0x09, 0x09, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x85, 0x17, 0x09, 0x17, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x85, 0x18, 0x09, 0x18, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x85, 0x1e, 0x09, 0x1e, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x85, 0x20, 0x09, 0x20, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x85, 0x2a, 0x09, 0x2a, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col03#5&379854aa&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x80 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 80 Usage (128) A1 01 Collection (Application) 85 03 Report ID (3) 09 81 Usage (129) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 02 Input (0x02) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding C0 End Collection (27 bytes) 0x05, 0x01, 0x09, 0x80, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x81, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0xc0, Device Found type: 047f c056 path: \\?\hid#vid_047f&pid_c056&mi_03&col03#f&39e6f119&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: D1CEC32927974D5F9BD6B2AEBF2EA8E3 Manufacturer: Plantronics Product: Plantronics Blackwire 3220 Series Release: 210 Interface: 3 Usage (page): 0x3 (0xffa0) Report Descriptor: 06 A0 FF Usage Page (65440) 09 03 Usage (3) A1 01 Collection (Application) 85 14 Report ID (20) 09 B1 Usage (177) 09 B2 Usage (178) 09 B5 Usage (181) 09 B7 Usage (183) 09 B3 Usage (179) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 81 06 Input (0x06) 75 03 Report Size (3) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 85 1F Report ID (31) 09 9C Usage (156) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 81 06 Input (0x06) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 85 03 Report ID (3) 09 30 Usage (48) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 81 02 Input (0x02) 85 15 Report ID (21) 09 8C Usage (140) 15 00 Logical Minimum (0) 27 FF FF 00 00 Logical Maximum (65535) 75 10 Report Size (16) 95 01 Report Count (1) 81 22 Input (0x22) 85 19 Report ID (25) 09 8D Usage (141) 09 8F Usage (143) 09 9E Usage (158) 09 DC Usage (220) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 04 Report Count (4) 91 22 Output (0x22) 09 D2 Usage (210) 09 D9 Usage (217) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 91 06 Output (0x06) 75 02 Report Size (2) Padding 95 01 Report Count (1) Padding 91 03 Output (0x03) Padding 85 1A Report ID (26) 09 B5 Usage (181) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) 91 22 Output (0x22) 75 07 Report Size (7) Padding 95 01 Report Count (1) Padding 91 03 Output (0x03) Padding 85 03 Report ID (3) 09 30 Usage (48) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 08 Report Size (8) 95 20 Report Count (32) 91 02 Output (0x02) 85 1B Report ID (27) 09 CF Usage (207) 09 B5 Usage (181) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) B1 22 Feature (0x22) 09 DE Usage (222) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 23 Feature (0x23) 09 D8 Usage (216) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 01 Report Count (1) B1 22 Feature (0x22) 75 04 Report Size (4) Padding 95 01 Report Count (1) Padding B1 03 Feature (0x03) Padding 09 09 Usage (9) 09 17 Usage (23) 09 18 Usage (24) 09 1E Usage (30) 09 20 Usage (32) 09 2A Usage (42) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 06 Report Count (6) B1 22 Feature (0x22) 75 02 Report Size (2) Padding 95 01 Report Count (1) Padding B1 03 Feature (0x03) Padding C0 End Collection (235 bytes) 0x06, 0xa0, 0xff, 0x09, 0x03, 0xa1, 0x01, 0x85, 0x14, 0x09, 0xb1, 0x09, 0xb2, 0x09, 0xb5, 0x09, 0xb7, 0x09, 0xb3, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x81, 0x06, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03, 0x85, 0x1f, 0x09, 0x9c, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06, 0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x85, 0x03, 0x09, 0x30, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x15, 0x09, 0x8c, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x75, 0x10, 0x95, 0x01, 0x81, 0x22, 0x85, 0x19, 0x09, 0x8d, 0x09, 0x8f, 0x09, 0x9e, 0x09, 0xdc, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x04, 0x91, 0x22, 0x09, 0xd2, 0x09, 0xd9, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x91, 0x06, 0x75, 0x02, 0x95, 0x01, 0x91, 0x03, 0x85, 0x1a, 0x09, 0xb5, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03, 0x85, 0x03, 0x09, 0x30, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x91, 0x02, 0x85, 0x1b, 0x09, 0xcf, 0x09, 0xb5, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0xb1, 0x22, 0x09, 0xde, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x23, 0x09, 0xd8, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xb1, 0x22, 0x75, 0x04, 0x95, 0x01, 0xb1, 0x03, 0x09, 0x09, 0x09, 0x17, 0x09, 0x18, 0x09, 0x1e, 0x09, 0x20, 0x09, 0x2a, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x06, 0xb1, 0x22, 0x75, 0x02, 0x95, 0x01, 0xb1, 0x03, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col03#5&99b72d3&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x1 (0xff01) Report Descriptor: 06 01 FF Usage Page (65281) 09 01 Usage (1) A1 01 Collection (Application) 85 03 Report ID (3) 09 01 Usage (1) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 1B Report Count (27) 81 02 Input (0x02) 85 04 Report ID (4) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 1B Report Count (27) 81 02 Input (0x02) 85 06 Report ID (6) 09 04 Usage (4) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 07 Report Count (7) 81 02 Input (0x02) 85 05 Report ID (5) 09 03 Usage (3) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 75 08 Report Size (8) 95 07 Report Count (7) B1 02 Feature (0x02) C0 End Collection (80 bytes) 0x06, 0x01, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x03, 0x09, 0x01, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85, 0x04, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x1b, 0x81, 0x02, 0x85, 0x06, 0x09, 0x04, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0x81, 0x02, 0x85, 0x05, 0x09, 0x03, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 0x07, 0xb1, 0x02, 0xc0, Device Found type: 046d c534 path: \\?\hid#vid_046d&pid_c534&mi_00#7&1c54b96&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Logitech Product: USB Receiver Release: 2901 Interface: 0 Usage (page): 0x6 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 05 07 Usage Page (7) 19 E0 Usage Minimum (224) 29 E7 Usage Maximum (231) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) 75 08 Report Size (8) Padding 95 01 Report Count (1) Padding 81 03 Input (0x03) Padding 19 00 Usage Minimum (0) 29 A4 Usage Maximum (164) 15 00 Logical Minimum (0) 26 A4 00 Logical Maximum (164) 75 08 Report Size (8) 95 06 Report Count (6) 81 00 Input (0x00) 05 08 Usage Page (8) 19 01 Usage Minimum (1) 29 05 Usage Maximum (5) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 05 Report Count (5) 91 02 Output (0x02) 75 03 Report Size (3) Padding 95 01 Report Count (1) Padding 91 03 Output (0x03) Padding C0 End Collection (66 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x05, 0x07, 0x19, 0xe0, 0x29, 0xe7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00, 0x29, 0xa4, 0x15, 0x00, 0x26, 0xa4, 0x00, 0x75, 0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75, 0x03, 0x95, 0x01, 0x91, 0x03, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col04#5&99b72d3&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0x1 (0xff02) Report Descriptor: 06 02 FF Usage Page (65282) 09 01 Usage (1) A1 01 Collection (Application) 85 07 Report ID (7) 09 02 Usage (2) 15 00 Logical Minimum (0) 26 FF 00 Logical Maximum (255) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 86 Report Count (134) B1 02 Feature (0x02) C0 End Collection (35 bytes) 0x06, 0x02, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0x07, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x86, 0xb1, 0x02, 0xc0, Device Found type: 0488 121f path: \\?\hid#dell091a&col05#5&99b72d3&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030} serial_number: 9999 Manufacturer: Microsoft Product: HIDI2C Device Release: 40d Interface: -1 Usage (page): 0xe (0xd) Report Descriptor: 05 0D Usage Page (13) 09 0E Usage (14) A1 01 Collection (Application) 09 22 Usage (34) A1 02 Collection (Logical) 85 0B Report ID (11) 09 52 Usage (82) 15 00 Logical Minimum (0) 25 0A Logical Maximum (10) 35 00 Physical Minimum (0) 47 FF FF 00 00 Physical Maximum (65535) 55 0C Unit Exponent (12) 66 01 10 Unit (4097) 75 08 Report Size (8) 95 01 Report Count (1) B1 02 Feature (0x02) C0 End Collection 09 22 Usage (34) A1 00 Collection (Physical) 85 0C Report ID (12) 09 57 Usage (87) 09 58 Usage (88) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 02 Report Count (2) 45 00 Physical Maximum (0) 55 00 Unit Exponent (0) 65 00 Unit (0) B1 02 Feature (0x02) 75 06 Report Size (6) Padding 95 01 Report Count (1) Padding B1 03 Feature (0x03) Padding C0 End Collection C0 End Collection (71 bytes) 0x05, 0x0d, 0x09, 0x0e, 0xa1, 0x01, 0x09, 0x22, 0xa1, 0x02, 0x85, 0x0b, 0x09, 0x52, 0x15, 0x00, 0x25, 0x0a, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x55, 0x0c, 0x66, 0x01, 0x10, 0x75, 0x08, 0x95, 0x01, 0xb1, 0x02, 0xc0, 0x09, 0x22, 0xa1, 0x00, 0x85, 0x0c, 0x09, 0x57, 0x09, 0x58, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02, 0x45, 0x00, 0x55, 0x00, 0x65, 0x00, 0xb1, 0x02, 0x75, 0x06, 0x95, 0x01, 0xb1, 0x03, 0xc0, 0xc0, Device Found type: 045e 0000 path: \\?\hid#converteddevice&col01#5&379854aa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd serial_number: Manufacturer: Product: Release: 0 Interface: -1 Usage (page): 0x6 (0x1) Report Descriptor: 05 01 Usage Page (1) 09 06 Usage (6) A1 01 Collection (Application) 85 01 Report ID (1) 05 07 Usage Page (7) 09 69 Usage (105) 09 6A Usage (106) 09 6B Usage (107) 09 6C Usage (108) 09 E3 Usage (227) 09 4C Usage (76) 09 E2 Usage (226) 09 E0 Usage (224) 15 00 Logical Minimum (0) 25 01 Logical Maximum (1) 75 01 Report Size (1) 95 08 Report Count (8) 81 02 Input (0x02) C0 End Collection (37 bytes) 0x05, 0x01, 0x09, 0x06, 0xa1, 0x01, 0x85, 0x01, 0x05, 0x07, 0x09, 0x69, 0x09, 0x6a, 0x09, 0x6b, 0x09, 0x6c, 0x09, 0xe3, 0x09, 0x4c, 0x09, 0xe2, 0x09, 0xe0, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0xc0, unable to open device ``` </details>
Youw commented 2021-12-29 10:21:28 -06:00 (Migrated from github.com)

Am I correct that this one can be closed in favor of #306 ?

Am I correct that this one can be closed in favor of #306 ?
JoergAtGithub commented 2021-12-29 14:34:39 -06:00 (Migrated from github.com)

I close this PR in favor of #306, which generates a better reconstruction

I close this PR in favor of #306, which generates a better reconstruction

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-libusb/hidapi!262
No description provided.