extending report desc of a hid device in filter driver

Hi All:

I have a touch sensor with its FW supporting HID desc and working fine. I want to add another functionality (say mouse) in an special mode. Hence, need to extend its report desc by adding another TLC(top level collection) with an another report it.

Is it possible to do with a filter driver or I need to replace the miniport driver for the same? It is a USB based device.

I am thinking of modifying the report desc on IOCTL_HID_GET_REPORT_DESCRIPTOR and in the special mode changing the report format to the new device with the new report ID. Is it possible in filter driver ? if yes then what is recommended, a lower filter driver of HIDClass or upper filter driver of hidusb.sys?

Thanks,
Raghav

There is no such thing as a useful hidusb upper filter. You cant get in between hidclass and hidusb and above hidclass for the fdo is useless. You want to filter below hidusb and alter the hid descriptor. If your device currently reports only one tlc and your filter makes it two, you will now have report ids in the io path. This will make the filer do more work as you will need to strip the report id on writes to the device and add them on reads from the device when the oi completes up the stack.

d

Bent from my phone


From: xxxxx@yahoo.commailto:xxxxx
Sent: ?10/?12/?2014 4:54 AM
To: Windows System Software Devs Interest Listmailto:xxxxx
Subject: [ntdev] extending report desc of a hid device in filter driver

Hi All:

I have a touch sensor with its FW supporting HID desc and working fine. I want to add another functionality (say mouse) in an special mode. Hence, need to extend its report desc by adding another TLC(top level collection) with an another report it.

Is it possible to do with a filter driver or I need to replace the miniport driver for the same? It is a USB based device.

I am thinking of modifying the report desc on IOCTL_HID_GET_REPORT_DESCRIPTOR and in the special mode changing the report format to the new device with the new report ID. Is it possible in filter driver ? if yes then what is recommended, a lower filter driver of HIDClass or upper filter driver of hidusb.sys?

Thanks,
Raghav


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer</mailto:xxxxx></mailto:xxxxx>

Thanks Doron, as always really helpful!

Hi All:

For the above mentioned purposes I am writing the Touch HID miniport driver over USB.

In the miniport driver I am able to get the interrupt and able to complete the READ request on these interrupt successfully with the appropriate data.

The current status is my READ I/O is successful and I am able to see the WM_INPUT packets in the digiinfo tool. But touch is still not working on the applications i.e. not able to draw in mspaint etc.

Could anyone please suggest a way to debug it further for the possible issue with the driver?

Regards,
Raghvendra