I have been using a modified version of the kbfiltr DDK example that I have
been using to route data from a HID keyboard MSR up to user level for an OPOS
"driver" for some time now on Win2k and XP.
It works on 2k and XP but becuase I use IOCTLs it won't run on Vista. As I
inderstand, IOCTLs are no longer allowed between user space and kernel space
any more? Installing it, Vista claims that the driver is not compatible with
Vista, I believe this is the reason, but anyway...
So I am starting over with the WinSDK/DDK sample "kmdf/kbfiler" This
contains an alternate method of user level communication. However, after
building the .sys file and the test program, then installing the filter
driver on the MSR device, both the regular keyboard and the MSR device (both
USB HID KB devices) completely stop working. After swapping the regular
keyboard to another USB port so I can use the computer once again I check the
registry which shows entries for the installation of the filter driver
properly on the MSR "KB" device only as it should. The registry looks fine,
exactly as in 2k/XP.
Running the "kbftest.exe" program (also in the kmdf/kbfilter sample) says
that there are "No device interfaces present". The kbfiltr is supposed to
just pass data along unchanged for the example and it is only supposed to
affect the ONE KB you install it on and the kbftest program should find it.
None of which is happening.
Has anyone done any work with upper level keyboard filtering in Vista? Run
into or solved these problems? It almost seems like there is something broken
with this procedure currently (installing upper level filter drivers on a HID
device).
Windows Vista RC1 + WinSDK(DDK) 5384