设备管理器枚举设备<br />USB鼠标<br />mouclass.sys<br />mouhid.sys<br /><br />PS/2鼠标<br />i8042prt.sys<br />mouclass.sys<br /><br />编写过滤驱动,可以在两个位置插入过滤驱动:<br /><br />---------------------------------------------------------------------------------------------------<br />位置1:<br />HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E96F-E325-11CE-BFC1-08002BE10318}<br />说明:<br />鼠标类(所有鼠标:USB和PS/2都经过此位置,需要区别到底是USB还是PS/2数据)<br />插入内容:<br />LowerFilters myfilter<br />---------------------------------------------------------------------------------------------------<br /><br />---------------------------------------------------------------------------------------------------<br />位置2:<br />HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumUSBVid_046d&Pid_c00e5&275e2383&0&2<br />说明:<br />USB-PS/2鼠标(每次枚举,如果插槽不同或者鼠标生产商不同或者不是同一型号,那么,枚举位置就不同,需要根据具体情况修改插入位置。)<br />插入内容:<br />LowerFilters myfilter<br />---------------------------------------------------------------------------------------------------<br /><br />如果想观察过滤的数据,需要再对外暴露一个设备名,通过扩展数据pdx里的标志区分对外接口和过滤接口。编写应用程序读出过滤驱动的数据,即可观察鼠标情况。<br /><br />以上是WDM方式的驱动写法<br /><br />NT方式的驱动不需要操作注册表。
|