JungleBoy
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2009-09-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1941回复:4

关于DriverUnload routine

楼主#
更多 发布于:2002-11-13 15:16
我的driver以service方式启动(net start XXXXX)
加入我start driver之后不做任何操作就net stop的话,DriverUnload例程会被正常调用
但是如果我给我的driver发送自己的IOCTL之后再net stop,系统就不会调用我的DriverUnload了(我在此处下了断点的,断不下来)。而且net stop命令最终也会失败

可能是什么原因呢?
I'm upgrading……
JungleBoy
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2009-09-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-14 10:44
不对不对
现在的问题是我net stop XXX之后根本就不会调用我的Unload routine。很多清除工作都是在这个routine里面做的。症状如下:
第一次net stop XXX
就会打一些省略号出来,然后告诉我停不了
然后我又停一遍它就会告诉我说现在无法控制这个服务
I'm upgrading……
goodbill
驱动牛犊
驱动牛犊
  • 注册日期2002-11-13
  • 最后登录2017-07-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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.
JungleBoy
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2009-09-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-13 16:07
嗯,有道理
我还以为系统会帮我完成这些清除工作呢
验证一下,如果正确了就给分
I'm upgrading……
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-13 16:03
我的driver以service方式启动(net start XXXXX)
加入我start driver之后不做任何操作就net stop的话,DriverUnload例程会被正常调用
但是如果我给我的driver发送自己的IOCTL之后再net stop,系统就不会调用我的DriverUnload了(我在此处下了断点的,断不下来)。而且net stop命令最终也会失败

可能是什么原因呢?


你发IOCTL后,driver里没有相应的完成?
或是你还保留了一些资源(句柄等)的引用,没释放?
 :)
[color=red]大头鬼! :P[/color]
游客

返回顶部