Intercepting HID Reports

Hi!

I’m trying to get my hand on some HID reports from a filter driver I’ve installed above HIDCLASS (for a joystick that i’m working on).

The HID report request is originated from user mode, and I want to intercept them from my kernel filter driver in order to modify them.

Could you please suggest the best aproach to do that!

Thanks,
Alex.

Do you want to filter the normalized HID report that the user mode
application sees or the raw HID report that HIDClass reads from the
device?

If you want to filter cooked, filter above the HID PDO (hardware ID
starts with HID.…). If you want to filter raw, filter below the
HIDClass FDO (hardware IDs will match the bus of the device, USB.… for
a USB device).

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@yahoo.com
Sent: Thursday, July 05, 2007 8:27 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Intercepting HID Reports

Hi!

I’m trying to get my hand on some HID reports from a filter driver I’ve
installed above HIDCLASS (for a joystick that i’m working on).

The HID report request is originated from user mode, and I want to
intercept them from my kernel filter driver in order to modify them.

Could you please suggest the best aproach to do that!

Thanks,
Alex.


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

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

Hello,

Thank you for the reply, I’m intrested in the normalized HID reports.

Alex

Then filter on top of the HIDclass created PDO. Like I indicated
previously, the HWID will begin with “HID.…”

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@yahoo.com
Sent: Friday, July 06, 2007 12:40 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Intercepting HID Reports

Hello,

Thank you for the reply, I’m intrested in the normalized HID reports.

Alex


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

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

Ok, thank you again for the reply.
I am kind of new to driver development. I modified the firefly sample (removed the wmi stuff and now functions as a pass-through driver) modified the inf and now the driver loads as an upper filter whenever I plug in my USB device without any errors.
I added a dispatch function for IRP_MJ_READ and using some debug prints I noticed that the function is called a lot when there is activity between the device and the application. I read the article on “Obtaining HID Reports” (http://www.osronline.com/ddkx/intinput/hidclass_6xpj.htm) but as I understand, it describes how to talk to your device from kernel mode and not how to intercept the traffic from a user mode application to a hid device.

Then filter on top of the HIDclass created PDO. Like I indicated previously, the HWID will begin with “HID.…”

My driver is already an upper filter for “HID-compliant game controller” , doesn’t that mean that I am already filtering on top of the HidClass?
If yes where can I find the HID reports that are exchanged between HID driver and the user mode application?

Hello,

this driver might help you:
http://vega.dyndns.org/x36/

It’s open source & public domain.