阅读:2693回复:1
在XP系统开发U盘上层过滤驱动时遇到的安装问题研究初步成果及疑问
写个U盘上层过滤驱动,然后进行加密解密,权限控制在理论上来说是完全可行的。
可要跟系统内原有的功能驱动安装在一起,目前我找到的方法是用修改注册表的方法, 网上有很多,但发现修改后重启蓝屏。Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}] "UpperFilters"=hex(7):75,00,73,00,62,00,73,00,74,00,6f,00,72,00,66,00,69,00,6c,00,74,\ 00,65,00,72,00,00,00,00,00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbstorfilter] "Type"=dword:00000001 "Start"=dword:00000003 "ErrorControl"=dword:00000001 "DisplayName"="usbstorfilter" 原因应该是这个注册表导入的时候,会造成原来为partmgr的上层过滤驱动被替换,而此过滤是硬盘分区表管理的,这应该是造成重启蓝屏的原因。我没有找到可以同时加多个过滤驱动的方法,同时发现,这个是把U盘过滤驱动,装在了磁盘驱动的上面,因为:4D36E967-E325-11CE-BFC1-08002BE10318是磁盘的GUID.不知道是什么原理?或者哪里大哥有可以加多个过滤驱动的修改注册表的方法?我感觉这里可能还是应该在那个PARTMGR上面加个UPPERFILTER。 仔细看了下注册表,发现 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}在这个里面加入Uppfilter项目然后在注册表中导入: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbstorfilter] "Type"=dword:00000001 "Start"=dword:00000002 "ErrorControl"=dword:00000001 "DisplayName"="usbstorfilter" 发现过滤驱动 可以运行,并且开机无蓝屏。并且插入U盘时DRIVERMONITOR显示驱动加载是成功的. 但我在U盘里面写文件的时候,却发现writer() 函数中的调试信息并没有在DRIVERMONITOR中输出. 不知道这个是怎么回事,DRIVERMONITOR 里面只显示W32N——PacketSend:Entry... 这是什么原因? |
|
|
沙发#
发布于:2009-07-29 17:56
完成 源码给我发一份!!谢谢了!!743333895@qq.com
|
|