l1o22u333
驱动牛犊
驱动牛犊
  • 注册日期2011-08-06
  • 最后登录2013-10-25
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1474回复:2

请问关于DriverUnload函数...

楼主#
更多 发布于:2013-06-28 12:26
我的DriverUnload函数中只有个Dbgprint 但依然能正常卸载 代表只要程序中有DriverUnload函数 系统就能替驱动程序卸载,难道卸载驱动的过程 都是由系统替我们做的吗? 我们去哪了解卸载的过程和原理?
Pegram
论坛版主
论坛版主
  • 注册日期2005-12-03
  • 最后登录2013-08-23
  • 粉丝13
  • 关注5
  • 积分1333分
  • 威望4717点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分2分
沙发#
发布于:2013-07-02 10:50
系统在收到你想卸载内核服务的指令后(如用户层调用了StopService),查看内核服务是否注册了Unload函数,如果有的话,就执行并完成卸载;如果没有,则无法卸载。卸载函数没有返回值,所以不能通过卸载函数的返回值来阻止卸载;另外,内核服务的所有资源必须在卸载函数被调用前,或就在吃函数中释放,否则是错误。
《寒江独钓》与《竹林蹊径》的合作作者。精通USB开发,设计了CY001 USB驱动套件(http://bbs.driverdevelop.com/read.php?tid-119314.html)。
lebaba
驱动牛犊
驱动牛犊
  • 注册日期2013-08-20
  • 最后登录2013-08-20
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2013-08-20 09:15
     注册DriverUnload与否等于告诉系统,你这个驱动程序是否支持卸载,如果支持卸载,那么系统在需要卸载驱动时就会调用,至于DriverUnload里面处理些什么,系统是不会关心的,DriverUnload里面主要是对驱动程序做一些善后工作,比如有些未完成的IRP操作,需要进行等待或者结束动作之类的。
游客

返回顶部