I'm looking to write a custom touchpad driver for my laptop, as its support under Windows is abysmal. I have the protocol figured out and I'm ready to go ahead and implement it, but I'm a bit confused as to how to go about it. It's a multitouch touchpad, so I'd like to support the Windows Touch interfaces in addition to standard mouse support, but the examples in the WDK (Elotouch being the most relevant one) only show HID support. In my Googling around, I discovered someone mentioning that the proper way to handle this is to write a shim driver that will expose HID from the low-level protocol, but I couldn't find good information on where to start with that.
What examples (WDK or otherwise) should I take a look at and is the HID shim the right way to go about this? I'm looking to target Vista+ at the least, XP would be nice as well.
Thanks
Edit: A bit of clarification. The touchpad is USB but non-HID. Also, if the HID shim is the best way to go, can I use KMDF there, or do I have to go WDM? Most of my experience is WDM, but I'm not sure which way to go.