3

我正在学习如何编写过滤器驱动程序,并试图在现有的 HID 驱动程序(鼠标或键盘)上安装一个以进行练习。据我了解,我至少应该在硬件注册表项中添加一个UpperFilters键。还有什么我应该做的吗?

当我使用 regedit 手动将UpperFilters键添加到我的目标 USB 鼠标设备时,regedit 说它无法创建该键。我怀疑 regedit 不允许修改 Windows 提供的设备驱动程序堆栈注册表。是否有任何其他方法可以将我的过滤器驱动程序安装到现有设备堆栈?

4

2 回答 2

5

默认情况下,Windows 7 不允许HKLM\SYSTEM\CurrentControlSet\Enum除 SYSTEM 帐户(即甚至管理员)之外的任何人在层次结构下进行修改,因此UpperFilters手动将密钥添加到特定设备并不容易。但是,从 INF 中它应该很容易。

但是,如果要过滤所有鼠标,则应将UpperFilters键添加到 Mouse 设备类 - 即添加到HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E96F-E325-11CE-BFC1-08002BE10318}. 即使在 Windows 7 上,这也应该不受阻碍,但通常您也可以通过 INF 执行此操作。

编写 INF 时,您可以在AddReg部分添加 FLG_ADDREG_APPEND (0x00000008) 标志,以便将您的过滤器添加到鼠标设备类上的任何其他过滤器中。

于 2011-05-04T09:47:20.890 回答
0

此驱动程序过滤系统上特定键盘的输入。如果要过滤来自插入系统的所有键盘的键盘输入,可以通过在注册表中的 KbdClass 过滤器之前添加此过滤器驱动程序的服务名称,将此驱动程序安装为 KbdClass 过滤器驱动程序下方的类过滤器:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}\UpperFilters

请参阅此页面: https ://github.com/microsoft/Windows-driver-samples/blob/1fe4cc42bedfccb97a5b2cc169f9e5306d41d0de/input/kbfiltr/README.md

于 2021-10-09T07:33:02.587 回答