How does windows determine a USB device is PID compatible (e.g. a force-feedback wheel)?

Andrew Snowden 20 Reputation points
2023-03-06T06:02:14.3366667+00:00

I'm developing a force-feedback racing wheel right now and I've come across an issue where it's recognized as an HID device and can send axis/button data, but with the addition of PID reports in the report descriptor, my device enumeration isn't changing at all. I'm expecting to receive SET_REPORT and GET_REPORT requests, yet windows doesn't do any additional enumeration to find the force-feedback capabilities of the device. This leads me to believe that I may have some misunderstanding about the nature of the enumeration. I've read that the example HID PID report in the USB PID01.pdf doesn't actually work with windows, but I've used verified working reports and still don't receive any enumeration past the GET_DESCRIPTOR request for the HID report (which completes successfully). I would appreciate some insight from people knowledgeable about this.

Thanks.

Windows for business | Windows Client for IT Pros | User experience | Other
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Limitless Technology 44,766 Reputation points
    2023-03-06T15:58:13.4966667+00:00

    Hello there,

    All USB devices contain a collection of information about the device, called the descriptors. Device descriptors are retrieved from all devices with the same command. This allows a device driver for the USB bus itself to effectively ask a newly connected device what it is, and expect to get a reasonable response.

    Of all the descriptors, only a few are directly used to match drivers to most devices. This is because USB defines classes of devices, and usually the system driver for each device class is sufficient to handle any devices that claim to be in that class.

    All keyboards will claim to be in the HID (Human Interface) class, as will mice, tablets, and game controllers, for example. The HID class has several subclasses (keyboards, mice, etc.), so each gets handled in the expected way.

    Most disk-like devices will claim to be in the Mass Storage class, and the system driver just works for those as well.

    In addition to the class and subclass, the descriptors also include a vendor ID (VID), product ID (PID), and revision.

    Hope this resolves your Query !!

    --If the reply is helpful, please Upvote and Accept it as an answer–


  2. Deleted

    This answer has been deleted due to a violation of our Code of Conduct. The answer was manually reported or identified through automated detection before action was taken. Please refer to our Code of Conduct for more information.


    Comments have been turned off. Learn more

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.