蓝屏死机

<image>

蓝屏死机（Blue Screen of Death，缩写：BSoD）是指微软Windows操作系统在遭遇不可恢复的致命系统错误时，所呈现的崩溃提示界面。由于早期NT版本皆以`*** STOP:`开头，因此又称作STOP错误。自Windows 11 24H2起，该界面的背景颜色已调整为黑色。

在基于MS-DOS的Windows 9x系统中，当发生错误时会显示两次蓝白当机画面，相比之下，Windows NT系列的稳定性较高，因此仅在发生致命错误而必须重新启动时，才会显示蓝白当机画面。画面上会显示特定的侦错代码（例如：STOP: 0x0000004e）及简短的错误讯息。使用者可透过微软的 技术支援网站 搜寻该代码以分析故障成因。然而，有时侦错代码未必能直接反映根本问题，甚至可能误导用户，因此在实务上往往需要搭配试误法（Trial and Error）才能找出确切原因。

在基于MS-DOS的Windows时代，蓝白当机允许使用者选择继续使用电脑或重新启动。但由于VxD通常仅在发生无法恢复的错误时才触发蓝白当机，当此画面出现时，系统已处于不稳定或当机状态。当时最常见的故障原因为DLL地狱，指多个版本的DLL产生不相容问题。当新安装的软件替换了系统中的DLL，可能导致原本依赖旧版DLL的应用程序崩溃。随着安装软件数量的增加，这种不相容的风险也随之提升。整体而言，Windows NT系列的稳定性显著优于Windows 9x，发生蓝白当机的几率也相对较低。

## 历史

### 非严重错误时期

Windows 1.0的蓝画面错误并非真正的蓝白当机。在Windows 1.0的 Beta版本中，若系统侦测错误时，会详细说明哪些检查未通过(例如：检测到版本过高的DOS系统时，会在启动前显示蓝底白字的“Incorrect DOS version”)，然后才会正常启动。不过，在正式发布之前，由于详细资讯显示的功能被移除了，才会显示乱码。当真正的致命错误发生时，系统通常会直接锁死，或退出至DOS环境。Windows 2.0和 Windows 2.1也存在相同的状况。

Windows 3.0则设计了专用的对话方块来显示重要系统讯息，这些讯息通常来自386增强模式下的驱动程式或其他无法正常运作的程式。

在Windows 3.1中，此对话方块的背景颜色由黑色改为蓝色。当按下Ctrl(参见:Ctrl+Alt+Del)时会开启简易任务管理器：

- 由程式无回应时，使用者可按下Enter键来关闭该程式
- 当所有程式正常运作时，会出现警告讯息，提示没有程式无回应
- 在任何情况下按下Ctrl可强制重新启动

若系统错误过于严重，Windows 3.x与先前版本相同，会退出至DOS。

<image>

- Windows 1.0—2.1乱码

<image>

- Windows 3.0分页档案发生错误

<image>

- Windows 3.1正常状况

<image>

- Windows 3.1应用程序当机

<image>

- Windows 3.2正常状况

### 严重错误时期

第一个表示严重系统错误的蓝白当机出现于Windows NT 3.1(NT系列的第一个版本，发布于1993年)，以`*** STOP:`开头，并延续至后续部分的Windows版本。此后发布的所有Windows操作系统都采用了这种模式，只是在后续版本中有所不同。

尽管大众普遍认为Windows Embedded Compact(早期称作Windows CE)系列的嵌入式系统存在蓝白当机，但实际上并没有已知的真正意义上的蓝屏死机。

蓝白当机通常由编写不良的驱动程式或故障的硬件引起（例如：内存故障、供电问题、过热或硬件运作超出规格限制）。在基于MS-DOS系统的Windows时代，系统核心中不完整的动态链接库（DLL）或漏洞也是导致当机的主因。相较于后续的Windows版本，Windows 9x发生蓝白当机的情况极为频繁。

### 重新设计

在Windows 11释出时，蓝白当机曾一度改为黑色，但后来又改回原样式。

2025年6月26日，微软宣布Windows 11 2024更新将把蓝白当机的画面改为黑色，同时对萤幕设计进行修正。

## 格式

<image>

蓝白当机最初背景为深蓝色(Windows NT 3.1—4：#0000A8；Windows 2000—7：#000080)，文字为银色(#FFFFFF)，包含当前内存及暂存资讯。从Windows Server 2012开始，使用蔚蓝色背景(Windows 8—10 11月更新：#1A67B3；周年更新—2022年更新：#0078D7)。早期版本的Windows 11使用黑色作为背景(#000000)，于22000.384改为深蓝色(#003D92)，于26120.3653改回黑色(#000000)。Windows 10以后及服务器的预览版，方便开发人员快速分辨版本，改为深绿色(#246F24)，而非蓝色或黑色，Windows Insider内测主管多纳·萨尔卡尔称：“为了更好地区分Windows Insider内测用户与正式版用户的报告，我们将错误检查页面的背景（从蓝色）换成了绿色。”Windows 3.1—98可透过system.ini来修改萤幕颜色，而Windows NT则为硬件编码。

Windows 95—ME的画面以80x25的文字模式和720x400的分辨率显示。Windows NT系列最初使用80x50文字模式及720x400的分辨率，但从Windows 2000开始，分辨率调整至640x480。从Windows 8 (Server 2012) 开始，使用Segoe UI，并使用引导帧缓冲（the boot framebuffer）来显示内容，在UEFI的机器上使用最高的可用图形输出协议模式（Graphics Output Protocol mode），在传统BIOS的机器上使用1024×768（假设显示器是扁平横向放置的）或最高的VESA基本输入输出系统扩展模式（如果引导配置数据库中设置了最高模式，'highestmode'）。Windows 10版本 1607以后的蓝屏死机界面与Windows 8相同，但多了一个通向微软公司官网的二维码，网页主要是微软公司对蓝屏死机原因的群众调查。

## Windows NT

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

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

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

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

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

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

### 细节

#### 早期版本 (NT—7)

在Windows 8(Server 2012)之前，蓝屏死机界面会显示一个大写的错误名称（例如：APC_INDEX_MISMATCH）、一个十六进制的错误码（例如：0x00000001）和四个参数。这些资讯格式显示如下：

折叠项目

```
錯誤代碼 (參數1, 參數2, 參數3, 參數4)
錯誤名稱
```

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

以下是Windows 2000的格式，尽管它们之间略有不同：

折叠项目

<image>

在极少数情况下，蓝白当机错误讯息会被截断，有时不会显示错误名称、代码或四段错误提示。它通常会根据发生的错误类型显示不同格式的错误萤幕。例如：

- 与Winlogon程式终止相关的蓝白当机（例如：“0xC000021A (WINLOGON_FATAL_ERROR)”）：

折叠项目

```
STOP: c000021a {Fatal System Error}
The Windows Logon Process/SubSystem system process terminated unexpectedly
with a status of 參數1 (參數2 參數3).
The system has been shut down.
```

- 与操作系统关键登录档案损坏相关的蓝白当机（例如：“0xC0000218 (STATUS_CANNOT_LOAD_REGISTRY_FILE)”）：

折叠项目

```
STOP: c0000218 {Registry File Failure}
The registry cannot load the hive
(file):\SystemRoot\System\Config\SOFTWARE
or its log or alternate.
It is corrupt, absent, or not writable.
```

3.可能导致Windows无法正常启动的硬件错误（例如0x00000080 (NMI_HARDWARE_FAILURE)）：

折叠项目

```
*** Hardware Malfunction
Call your hardware vendor for support.
NMI: Parity Check / Memory Parity Error
*** The system has halted ***
```

随着Windows XP的发布，蓝白当机的布局略有改动，这种布局一直沿用到Windows 7。具体来说，十六进制错误代码和四个参数被移到了萤幕底部，位于“Technical information:(技术资讯)”标签下的四个段落之后。此外，关于如何参考“入门指南”手册来解决蓝白当机的提示资讯也被移除，所有提及Windows 2000的地方都简化为“Windows”。错误画面的开头还出现了那条如今臭名昭著的提示讯息：

折叠项目

```
A problem has been detected and Windows has been shut down to prevent damage
to your computer.
```

以下是Windows XP到Windows 7系统中的蓝白当机，尽管它们之间略有不同：

折叠项目

<image>

从Windows 2000开始，系统会自动执行记载体倾印，预设通常会以64KB的“小记载体倾印”档案形式产生。发生这种情况时，Windows 2000的蓝白当机将显示下列讯息来取代四段说明和建议。即使停用了记载体倾印，在“系统属性”的“启动和修复”下的“系统失败”部分选取“将事件写入系统纪录档中”或“传送系统管理警示”时，也能看到这些说明和建议：

折叠项目

<image>

在Windows XP到Windows 7系统中，上述讯息保持不变，但略有修改，并且显示在四段说明和建议之后；而在Windows 2000系统中执行记载体倾印时，这四段的说明和建议是隐藏的。此外，在大多数情况下，当对Windows XP到Windows 7的蓝白当机执行记载体倾印时，会显示下列讯息以及显示记载体倾印进度的指示器：

折叠项目(记载体倾印进行中)

```
Collecting data for crash dump ...
Initializing disk for crash dump ...
Beginning dump of physical memory.
Dumping physical memory to disk:  0
```

折叠项目(记载体倾印已完成)

```
Beginning dump of physical memory
Physical memory dump complete.
Contact your system administrator or technical support group for further
assistance.
```

此外，在64位元的Windows上，蓝白当机的四个参数将扩展到16位数（0x0000000000000000），而不是8位数（0x00000000）。

#### 后续版本(8—11、Server 2012—2025)

而随着Windows Server 2012的发布，蓝屏死机的界面大幅改动并删去了以上的所有信息，只留下了错误名称和一段简短的描述。Windows 8加入了一个哭脸的颜文字。不过，十六进制的错误码和参数仍然能在事件查看器和内存转储文件中被查询到。

萤幕上预设显示的主要文字内容如下：

折叠项目

<image>

在 Windows 10 年度更新时，加入了QR-Code。

折叠项目

<image>

Windows 10 版本2004将“电脑”改为“装置”：

折叠项目

<image>

Windows 10 的预览版本（build 14997之后）为绿色：

折叠项目

<image>

Windows 11 的早期版本（build 22000.384之前）为黑色：

折叠项目

<image>

Windows 11 build 22000.384之后改为深蓝色：

折叠项目

```
您的裝置發生問題，因此必須重新啟動。
我們剛剛正在收
集某些錯誤資訊，接著我們會為您重新啟動。

已完成 0%

　　　　　如需此問題與可能修正的詳細資訊，請瀏覽 http://windows.com/stopcode

　　　　　致電支援人員時，請提供此資訊: 
　　　　　停止代碼: <代碼>
```

Windows 11 24H2 重新设计布局，改为黑色，26H1引进翻译版本：

折叠项目

<image>

同上，预览版：

折叠项目

<image>

## 发生的当机

<image>

- 2019年一家药店门前的蓝屏死机

<image>

- 发生在CNIT(Centre national des industries et techniques)的一蓝屏死机

<image>

- 发生在首尔地铁车厢内的蓝屏死机

<image>

- 在新加坡南洋理工大学，满屋的电脑均出现蓝屏死机

<image>

- 发生在纳什维尔国际机场的Windows 98蓝屏死机

<image>

- 发生在法国里昂公共自行车系统Vélo'v的蓝屏死机

<image>

- 深圳地铁5号线大学城站的深圳通充值机蓝屏死机

## 外部链接

- 微软技术支援网站
- 在Windows 10 1607以后扫描蓝屏界面中的二维码会跳转至蓝屏错误疑难解答界面
- Bluescreeners Developer Team
- BlueScreen －一个黑色幽默风格的萤幕保护程式，由微软所推出，可以模拟蓝屏死机画面。（Windows 8之后无效果）