StartService返回值为2

       今天在调试一个程序,里面涉及到驱动加载,经过调试后发现卡在StartService这个函数上了,它的返回值一直为2,之后各种百度谷歌,却都没找到相关的解决方法,足足折腾了3个小时,又是关机重启,又是修改驱动路径,但StartService 始终还是返2,网上搜索的相关信息都把问题指向了路径上,但我程序中使用的路径100%是正确的,这时候我就无奈了。

       偶然看到一篇帖子,上面虽没有解决的方法,但提示了我,可以去注册表里查看驱动的信息。我把驱动名作为关键词查找注册表,终于在注册表里发现了问题所在,因为我之前在别的路径上安装过了这个驱动,但是在程序运行后驱动没有卸载,所以注册表关于我这个驱动的信息始终都是上一次加载后的路径,所以我无论我在程序中如何修改驱动路径,StarService始终都是在注册表关于路径的那个键值提供的路径去搜索驱动文件.sys,故始终都无法找到我放在程序路径下的驱动文件。我直接把这个驱动在注册表中的文件删除了,重启电脑,驱动加载成功!!!

       经过测试后发现删除过一次后,就算一样不卸载驱动,在不同的路径下运行驱动文件,都可以加载。。。那这不是说明跟路径没关系么。。。。╮(╯▽╰)╭,到底是怎么回事呢,我又更晕了哭,管它呢,反正我现在问题解决了。

      删除是直接删除如下图所示(我错误的驱动是check_driver.sys):


       我直接搜素check_driver,找到后直接删除check_driver这个文件夹,重启电脑就没事~\(≧▽≦)/~啦啦啦,最后说一下,CSDN上有帖子也出现了同样的关于路径的问题,但楼 主解决后,却没有跟大家分享,太不地道了鄙视


猜你喜欢

转载自blog.csdn.net/qq_36201577/article/details/70663410