阅读:1539回复:2
请问关于DriverUnload函数...
我的DriverUnload函数中只有个Dbgprint 但依然能正常卸载 代表只要程序中有DriverUnload函数 系统就能替驱动程序卸载,难道卸载驱动的过程 都是由系统替我们做的吗? 我们去哪了解卸载的过程和原理?
|
|
沙发#
发布于:2013-07-02 10:50
系统在收到你想卸载内核服务的指令后(如用户层调用了StopService),查看内核服务是否注册了Unload函数,如果有的话,就执行并完成卸载;如果没有,则无法卸载。卸载函数没有返回值,所以不能通过卸载函数的返回值来阻止卸载;另外,内核服务的所有资源必须在卸载函数被调用前,或就在吃函数中释放,否则是错误。
|
|
|
板凳#
发布于:2013-08-20 09:15
注册DriverUnload与否等于告诉系统,你这个驱动程序是否支持卸载,如果支持卸载,那么系统在需要卸载驱动时就会调用,至于DriverUnload里面处理些什么,系统是不会关心的,DriverUnload里面主要是对驱动程序做一些善后工作,比如有些未完成的IRP操作,需要进行等待或者结束动作之类的。
|
|