|
|
本帖最后由 likeyouli 于 2025-12-3 16:39 编辑
那么问题来了 ,安全类软件(比如奇安信)的驱动,删除为什么必定会蓝屏 ?
分析一下,windows系统在没安装安全类软件之前,驱动是正常的,也肯定能正常启动系统,那为什么安装了安全类软件的驱动,再删除这个驱动,系统就会蓝屏呢 ?
刚开始的思考:安装了奇安信之后,奇安信的驱动文件替换了windows系统所需要的驱动文件,新替换的驱动即可以被windows所用,也为奇安信服务。所以一旦删除奇安信的驱动,又没有及时将windows系统驱动还原回去,Windows系统才会出现问题。所以正常卸载奇安信的时候,会有还原windows原来驱动文件的过程。
事实上: 刚才说的"替换模型”, 主要适用于硬件设备驱动。一个硬件(如显卡)需要驱动才能工作。Windows自带一个通用驱动(如Basic Display Driver),功能有限。当您安装显卡厂商(如NVIDIA)的驱动时,它确实会替换掉Windows自带的通用驱动,接管对硬件的控制。后果:此时,如果您直接删除NVIDIA的驱动文件,而系统又没有自动回滚到通用驱动,那么显卡就无法正常工作,可能导致显示异常、甚至启动失败。
但安全类软件的驱动却不是"替换模型”,而是采用的“挂载/分层模型”,也就是过滤型驱动。就是在原windows驱动上层,又增加了一层驱动,这层驱动主要起安全过滤作用。
大体模型: 应用程序 →【安全软件过滤驱动】(新增加的驱动) →【Windows原文件系统驱动(如NTFS.sys)】(Windows原生驱动未动) → 【磁盘驱动】→物理硬盘
那么问题来了,为什么删除安全软件的过滤型驱动,系统为什么会蓝屏呢 ?
系统已启动,驱动栈已构建:此时,天擎的过滤驱动已经作为一个“环节”被牢牢地固定在驱动栈里。系统内核知道:“当有文件操作请求过来,我要先交给天擎驱动处理一下,再往下传。”
暴力删除驱动文件:当暴力删除驱动文件后,但是,这个驱动已经加载在内存里,并且它的“位置”信息已经注册在内核的驱动栈结构中。
系统按既定流程工作:内核沿着驱动栈,将请求发送到记录在案的那个位置——即 “天擎文件过滤驱动”应该存在的地方。
灾难发生:系统试图调用该驱动的代码来处理请求,却发现对应的代码模块(.sys文件)已经从硬盘上消失了。
内核崩溃(蓝屏):在内核模式下,这种异常是无法恢复的致命错误。为了防止数据大面积损坏,Windows内核会立即停止一切工作,抛出蓝屏。错误代码常常是 SYSTEM_THREAD_EXCEPTION_NOT_HANDLED 或直接指向那个丢失的驱动文件。
但如果是正常卸载奇安信,卸载程序会先通知系统内核,“当有文件操作请求过来,直接往下传吧(不需要再交给奇安信驱动过滤了)”, 官方术语:内核的驱动模块列表和驱动栈结构中,移除对该驱动的所有引用和链接 ,只有这样才不会蓝屏。
|
|