Windows 将筛选器驱动程序安装到现有设备

Windows 将筛选器驱动程序安装到现有设备,windows,filter,driver,device,wdk,Windows,Filter,Driver,Device,Wdk,我正在学习如何编写一个过滤器驱动程序,并试图在现有的HID驱动程序(鼠标或键盘)上安装一个过滤器驱动程序进行练习。据我所知,我至少应该在硬件注册表项中添加一个UpperFilters项。还有什么我该做的吗 当我使用regedit手动向目标USB鼠标设备添加UpperFilters密钥时,regedit表示无法创建密钥。我怀疑regedit不允许修改Windows提供的设备驱动程序堆栈注册表。是否有其他方法将我的筛选器驱动程序安装到现有的设备堆栈中?Windows 7默认情况下不允许对系统帐户以外

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


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

Windows 7默认情况下不允许对系统帐户以外的任何人(即管理员)进行
HKLM\SYSTEM\CurrentControlSet\Enum
层次结构下的修改,因此,手动向特定设备添加
UpperFilters
键并不容易。然而,从INF内部来说,这应该很容易

但是,如果要筛选所有鼠标,应将
UpperFilters
键添加到鼠标设备类,即
HKLM\SYSTEM\CurrentControlSet\Control\class\{4D36E96F-E325-11CE-BFC1-08002BE10318}
。即使在Windows7上,这也应该是不受阻碍的,但通常也可以通过INF来实现


写入INF时,可以添加FLG_ADDREG_APPEND(0x00000008)标记,以便将您的筛选器添加到鼠标设备类上的任何其他筛选器。

听起来我需要提供自己的INF文件,并在更新驱动程序向导中选择“使用磁盘”以使用自己的INF文件。如何通过INF将UpperFilters添加到设备类?或者,我应该更好地说明如何修改mouseclass的UpperFilters,因为它已经有了一个upperfilter mouclass.sys。是否有任何示例INF可供下载?是否有类似以下内容的INF部分:[VBoxMouse_AddReg]HKLM,System\CurrentControlSet\Control\Class\{4D36E96F-E325-11CE-BFC1-08002BE10318},UpperFilters,0x00010000,“VBoxMouse”,“mouclass”。(这是我发现VirtualBox用于在其虚拟机上修改guest win安装的鼠标类上过滤器)VBoxMouse的INF看起来是一个很好的例子。使用0x00010008标志,以便将过滤器附加到列表中,而不是替换它。