将过滤器驱动程序安装到现有设备

Jav*_*Man 3 windows driver device wdk filter

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

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

Ily*_*lya 5

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

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

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