Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results


More Info on Driver Writing and Debugging

The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.

Check out The OSR Learning Library at:

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

How to get HID Report Descriptor using Windows API

Xiaofan_ChenXiaofan_Chen Member - All Emails Posts: 208

We are having some discussion in libusb-devel mailing list and github
hidapi project here.

Just wondering if the experts here have any other ideas. Thanks.

Best regards,

On Sat, Jun 19, 2021 at 12:14 PM Tim Roberts wrote:

On 6/18/21 6:56 PM, Xiaofan Chen wrote:

Switch to another question. Hopefully you can shed some light on this as well. Thanks.
MacOS and Linux provide APIs for reading the HID Report descriptor of an HID device.
Therefore we can get the unmodified HID Report Descriptor on these operating systems.
Unfortunately the Windows HID subsystem doesn't provide such an API.


Yes. This is a huge irritation to me. I have done two projects recently where I needed to
imitate another device. If I could have grabbed the original report descriptor, this task
would have been way easier. In both cases, I ended up hard-coding the report descriptor,
which is distasteful.


What will be the good approach to reconstruct the HID report descriptor?


I spent some time with this, and I don't think it is possible. There's just not enough information
in the "parsed descriptors" to do that.


MAYBE (I haven't proven this to myself) you could use the same hub backdoor
that "usbview" uses, and fetch the report descriptor that way.

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Developing Minifilters 24 May 2021 Live, Online
Writing WDF Drivers 14 June 2021 Live, Online
Internals & Software Drivers 27 September 2021 Live, Online
Kernel Debugging 15 November 2021 Live, Online