标签:线程 函数 DriverUnload Windows 停止 驱动
对于一个Windows驱动来说,一般需要提供DriverUnload函数,有了这个函数,驱动对应的服务(service)就能被停止。
驱动是已服务的方式运行的,服务停止的实质是系统把该驱动模块对应在内核地址空间中的代码以及数据移除了。
同时,开发者可以在DriverUnload函数中进行一些清理相关的工作。例如驱动Driver A内部有一个线程B,如果开发者没有在DriverUnload函数中停止线程B,一旦驱动A被停止,则线程B对应与驱动A的代码就被系统删除了,线程B执行就会发生异常,从而引起系统异常。
但DriverUnload函数并不是必须的,因此,有些软件就不提供DriverUnload函数,服务就只能启动而不能停止,这一特性被很多软件(例如安全软件)利用,避免驱动被恶意停止。
参考:《Windows内核编程》- 谭文,陈铭霖
标签:线程,函数,DriverUnload,Windows,停止,驱动 来源: https://blog.csdn.net/zhouyingge1104/article/details/119151251
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。