Tech Support > Microsoft Windows > Drivers > kbfiltr sample and Windows Vista...
kbfiltr sample and Windows Vista...
Posted by L Adams on September 29th, 2006


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

Posted by Ray Trent on September 29th, 2006


L Adams wrote:
They aren't the *recommended* communication mechanism between user and
kernel space except in some limited circumstances (like exactly this
one, last time I heard, where the device can't be opened by user mode
because the OS opens it exclusively :-), but IOCTLs certainly still work
in Vista. Our whole driver API (for legacy compatibility reasons)uses
IOCTLs between our user mode and kernel mode components.

As to why your particular case isn't working in Vista, well, that's a
harder question.
--
Ray


Similar Posts