Valhalla Legends Forums Archive | Advanced programming | HID mouse filter drivers for Windows?

AuthorMessageTime
MyndFyreHas anyone (*looks at Skywing*) worked on writing HID filter drivers?

I recently installed Windows 7 on my MacBook Pro with Boot Camp, and the system works great, except that the trackpad sucks balls.  It's entirely too sensitive.

I was thinking that for something like a scroll, I might just be able to filter out (for instance) every other or every third IRP from the trackpad to slow it down.  That could live between the user-mode system and the normal driver.

I'd also want to build a filter for the trackpad touch-click sensitivity.  It's ridiculous; it registers a click when I take my finger off of the touchpad.  So, if I tap the pad to select a checkbox, for instance, it will typically uncheck itself until I get pissed, tab to the checkbox, and press the spacebar.

I was thinking that I might be able to address this issue by writing a filter driver to live between the device and the normal driver, to process the packets and see if they include a pressure indicator (I'm assuming they would).

Any thoughts?
September 30, 2009, 05:20 PM
brewI'm pretty sure no trackpads are pressure sensitive, per se. The MacBook seems like it should be since the whole trackpad is the mouse button, however it has just two pressure levels. A click is registered if the capacitance is over a certain threshold, no irp is sent otherwise. A quick google search turns up this CNet article which explains how Apple has their own option to drop superfluous trackpad IRPs, a feature probably built into the OS. It seems like a flaw of Windows 7's, failing to take into account the oversensitivity of Apple's hardware.

Perhaps you should look at \WinDDK\src\generic\toaster\filter\filter.c, and use that as the base of your filter driver. The underlying logic shouldn't be too hard - you could do something like.. if (KeQueryTickCount() - lastmouseevent < 80) droppacket(pirp); for mouse click events, etc.
October 01, 2009, 07:14 AM
CamelActually, thew new MacBooks' trackpads are also buttons. That is, the entire trackpad clicks when you press it. They also support tap to click, too, but that's off by default.

MF, I assume you installed the boot camp drivers? I had no problem lowering the sensitivity to sane levels after installing them.
October 08, 2009, 11:08 AM
MyndFyre
Actually, thew new MacBooks' trackpads are also buttons. That is, the entire trackpad clicks when you press it. They also support tap to click, too, but that's off by default.

MF, I assume you installed the boot camp drivers? I had no problem lowering the sensitivity to sane levels after installing them.
I'm talking specifically about the tap-to-click with the boot camp drivers.  I installed the boot camp drivers that were on the Snow Leopard disc.  I live on tap-to-click on my Gateway notebook and when I'm booted into OS X, so I hate not having it in Windows (because it's too sensitive).

I haven't been able to locate the pressure sensitivity adjuster.

@brew: My Gateway's Synaptics touchpad is most definitely pressure sensitive.  It's great visual feedback for newbies who can't find the setting to turn off the tray icon, but it provides visual feedback about how strongly you're pressing the trackpad.
October 08, 2009, 11:49 PM
Camel
I'm talking specifically about the tap-to-click with the boot camp drivers.  I installed the boot camp drivers that were on the Snow Leopard disc.  I live on tap-to-click on my Gateway notebook and when I'm booted into OS X, so I hate not having it in Windows (because it's too sensitive).
Ah, okay. I completely misunderstood what you were talking about; thought you meant tracking speed.

@brew: My Gateway's Synaptics touchpad is most definitely pressure sensitive.  It's great visual feedback for newbies who can't find the setting to turn off the tray icon, but it provides visual feedback about how strongly you're pressing the trackpad.
Are you sure of that -- ie, does it respond to plastic objects? If it does, it must either be really old, or have been poorly designed, because that technology has been obsolete since the capacitive ones became cost effective. The touchpads that Apple uses, for example, provide something to the tune of 4 bits (it has been a while since I looked at the spec, so this number may be wrong) of sensitivity per "pixel."
October 09, 2009, 11:13 AM
MyndFyre
Are you sure of that -- ie, does it respond to plastic objects? If it does, it must either be really old, or have been poorly designed, because that technology has been obsolete since the capacitive ones became cost effective. The touchpads that Apple uses, for example, provide something to the tune of 4 bits (it has been a while since I looked at the spec, so this number may be wrong) of sensitivity per "pixel."
No - it doesn't respond to plastic objects.  What I'm saying is, it can distinguish between lightly touching and pushing hard on it, and I can choose the threshold before it will register the click when using tap-to-click.
October 09, 2009, 01:49 PM
CamelI think the first thing I would try in this scenario, before you go and write a driver, is to try other Synaptics drivers. Almost all of their touchpads are USB, and the protocol on top of that varies very little. This is sort of like searching for IR codes with a universal remote.October 10, 2009, 09:28 PM
MyndFyre
I think the first thing I would try in this scenario, before you go and write a driver, is to try other Synaptics drivers. Almost all of their touchpads are USB, and the protocol on top of that varies very little. This is sort of like searching for IR codes with a universal remote.
Are Apple's touchpads based on Synaptics?
October 11, 2009, 12:04 AM