世界杯进球最多

在Windows NT的系列操作系统中,当内核或者运行在内核模式中的驱动程序发生无法修复的错误时,就会发生蓝屏死机。此处的蓝屏死机官方名称为停止错误(stop error),在Windows的软件开发工具包(SDK)与驱动开发工具包(DDK)文档中也被称为“错误检查”(bug check)。它通常是被一般保护错误引起的。此时,操作系统能采取的唯一安全手段只有重新启动电脑;而作为结果,用户甚至没有机会来保存未保存的数据。

蓝屏画面中显示的文本包括了错误码和它的名称(如“0x0000001E, KMODE_EXCEPTION_NOT_HANDLED”),并在随后用括号括住四个与错误相关的值以方便维修。根据错误的不同,它可能还会显示问题发生的内存地址,以及在该地址下加载的驱动程序。此外,在屏幕的第二和第三部分可能还会分别显示所有已经加载的驱动程序和堆栈转储信息,而所给的驱动程序信息分为三列,每一列分别是驱动程序的基地址、驱动程序的创建日期和驱动程序的名称。[6]

默认情况下,Windows会在错误发生时创建一个内存转储文件,根据Windows版本的不同它可以小至64kB(小型转储),也可以大至RAM的完整复制(完全转储)。这个文件稍后可以使用调试器(一般是WinDbg[7])进行调试。调试器是进行堆栈追踪所必需的;并且由于蓝屏中的信息很有限,可能会造成误导或隐藏真正的原因,因此确定蓝屏的真正原因也需要它的参与。

在默认情况下,Windows XP被配置为只保存64kB的迷你转储文件,然后自动重启电脑。由于这一过程发生的非常迅速,蓝屏可能只会一闪而过甚至完全看不到,因此用户也很容易把它当作电脑随机重启的故障,直到重启完成后Windows提示刚刚曾发生过严重的错误。当然,可以通过关闭控制面板中“系统属性—高级—启动和故障恢复—系统失败”中的自动重启来达到显示蓝屏的目的。

Windows还可以被设置为将调试信息实时发送到在另一台计算机上运行的内核调试器。如果此时发生了停止错误,Windows将会暂停执行并且中断调试器,而不是显示蓝屏;之后,就可以用调试器检查内存的内容并寻找问题的原因了。

蓝屏死机也可能由严重的引导加载程序错误引起。在该错误中,Windows由于存储驱动程序错误、文件系统损坏或其他类似的问题而无法访问引导分区。它的错误码是STOP 0x0000007B (INACCESSIBLE_BOOT_DEVICE)。[8]在这种情况下,Windows将不会保存任何内存转储文件。由于此时Windows无法从硬盘启动,因此要想修复这种错误就需要使用在Windows安装盘中所附带的工具。

细节

编辑

在Windows Server 2012之前,蓝屏死机界面会显示一个大写的错误名称(例如APC_INDEX_MISMATCH)、一个十六进制的错误码(如0x00000001)和四个参数。一般的显示格式如下:

错误码(参数 1, 参数 2, 参数 3, 参数 4)错误名称

根据错误码及其性质,参数可能会指出错误的原因和/或位置。此外,蓝屏界面上还会显示四段一般性的解释与建议,有时也会指出其他的技术信息,例如出错文件的名称和内存地址。

而随着Windows Server 2012的发布,蓝屏死机的界面大幅改动并删去了以上的所有信息,只留下了错误名称和一段简短的描述。Windows 8加入了一个哭脸的颜文字。不过,十六进制的错误码和参数仍然能在事件查看器和内存转储文件中被查询到。从Windows 10 版本 14393开始,增加了一个用于快速故障排除的二维码。