电脑为什么会蓝屏,蓝屏的时候电脑在干什么?

蓝屏代码汇集

一旦遇上蓝屏,大多数的人都会以为Windows不行了,所以就瘫痪了,有罪魁祸首是Windows,或者Windows不够强悍、不够稳定的意思。要知道,每当有内核模式设备驱动程序或者子系统引发了一个非法异常,Windows就会面临这个艰难的抉择,虽然Windows最终还是选择了崩溃,但是这并不代表它就不能够忽略该异常,让设备驱动程序或者子系统继续往下执行。

 

蓝屏

 

Windows之所以要选择“亡我”,是因为它不知道该错误是否能被隔离出来从而不伤害系统的其它程序与数据,或者该组件将来是否能够恢复正常,而且Windows深知,这个异常更有可能来

 

蓝屏

 

源于更深层的问题,比如由于内存的常规破坏(General Corruption),或者由于硬件设备不能正常工作。允许系统继续运行可能导致更多的异常,而且,存储在磁盘或其他外设中的数据可能也会遭受破坏。Windows意识到,这样做的风险太大了,为了您的程序、数据安全与完整,为了将您的损失在第一时间减小至最低,Windows于是忍痛做出了自我牺牲。

蓝屏

 

当系统检测到引发崩溃的致命错误时,Windows自己执行崩溃函数“KeBugCheckEx”。该函数接受一个停止代码(STOP Code,也称为错误检查码“Bug Check Code”),

以及四个根据停止代码来解释的参数(下文中会有图例)。在调用KeBugCheckEx之后,首先该系统所有处理器上的所有中断将被屏蔽,然后系统将显示器切换到低分辨率的VGA图形模式(因为这是所有Windows平台显卡均支持的通用模式),绘制一个蓝色背景,然后显示此停止代码,并且后面紧跟一些对用户诊断错误有帮助的关键信息。

 

蓝屏

 

最后,KeBugCheckEx调用所有已注册的设备驱动程序错误检查回调函数(这种回调函数通过调用KeRegisterBugCheckCallback函数来注册),从而让这些驱动程序停止运行它们所支配的设备(有系统数据结构已经被破坏得太严重以至于蓝屏都显示不出来的可能性)。

相关文章