阅读:1939回复:4
关于DriverUnload routine
我的driver以service方式启动(net start XXXXX)
加入我start driver之后不做任何操作就net stop的话,DriverUnload例程会被正常调用 但是如果我给我的driver发送自己的IOCTL之后再net stop,系统就不会调用我的DriverUnload了(我在此处下了断点的,断不下来)。而且net stop命令最终也会失败 可能是什么原因呢? |
|
|
沙发#
发布于:2002-11-13 16:03
我的driver以service方式启动(net start XXXXX) 你发IOCTL后,driver里没有相应的完成? 或是你还保留了一些资源(句柄等)的引用,没释放? :) |
|
|
板凳#
发布于:2002-11-13 16:07
嗯,有道理
我还以为系统会帮我完成这些清除工作呢 验证一下,如果正确了就给分 |
|
|
地板#
发布于:2002-11-14 09:07
1. to check if the Device Object is NULL when in DriverUnload( ).
2. to check if the IoAcquireRemoveLock( ) and IoReleaseRemoveLock() is pair match in your DriverDispatch( ) routine. |
|
地下室#
发布于:2002-11-14 10:44
不对不对
现在的问题是我net stop XXX之后根本就不会调用我的Unload routine。很多清除工作都是在这个routine里面做的。症状如下: 第一次net stop XXX 就会打一些省略号出来,然后告诉我停不了 然后我又停一遍它就会告诉我说现在无法控制这个服务 |
|
|