动态加载Minifilter驱动总设置自启动的问题
各位好,
现在我想实现minifilter驱动的动态加载,仿照
http://www.cnblogs.com/js2854/archive/2011/04/03/sysload.html
一文中例子,
采用的是写注册表的方法来实现驱动的安装。
但是,在设置驱动程序自启动的时候,
我将函数中CreateService部分的参数做了调整,如下:
CreateService( hServiceMgr,
lpszDriverName, // 驱动程序的在注册表中的名字
lpszDriverName, // 注册表驱动程序的DisplayName 值
SERVICE_ALL_ACCESS, // 加载驱动程序的访问权限
SERVICE_FILE_SYSTEM_DRIVER, // 表示加载的服务是文件系统驱动程序
SERVICE_BOOT_START, // 注册表驱动程序的Start 值
SERVICE_ERROR_IGNORE, // 注册表驱动程序的ErrorControl 值
szDriverImagePath, // 注册表驱动程序的ImagePath 值
"FSFilter Activity Monitor",// 注册表驱动程序的Group 值
NULL,
"FltMgr", // 注册表驱动程序的DependOnService 值
NULL,
NULL);
一切执行正常,但是重启电脑的时候就会跳出提示:“下列引导或系统启动驱动程序无法加载”。
查看注册表,发现本来手工填入的instance键也被系统自动删除了。
不知道哪位解决过这种问题给指点下啊,万分感谢!
[解决办法]
哥们儿,解决没?
[解决办法]
解决啦!不是这个问题,而是我写注册表的时候出错了。
[解决办法]
又有人问我这个问题,讲清楚吧。
那个创建的没问题,关键是后面的往注册表里写子键时,RegCreateKeyEx中参数dwOptions要注意了。我用的是REG_OPTION_NON_VOLATILE,否则重启之后这个键可能就不存在了。