适用于 Windows 的内存转储文件选项概述

本文介绍适用于 Windows 的内存转储文件选项。

原始 KB 数: 254649

总结

当计算机因 停止 错误(也称为 蓝屏、系统崩溃或 bug 检查)而意外停止时,可以将调试信息写入不同的文件格式(也称为内存转储文件)。 还可以将 Windows 配置为不将调试信息写入内存转储文件。

Windows 可以生成以下任一内存转储文件类型:

完整内存转储

当计算机意外停止时,完整的内存转储会记录系统内存的所有内容。 完整的内存转储可能包含收集内存转储时正在运行的进程中的数据。

如果选择 “完整内存转储 ”选项,则必须在启动卷上有一个分页文件,该文件足以容纳所有物理 RAM 和 257 兆字节(MB)。

如果满足以下条件,将覆盖上一个文件。

  • 出现第二个问题。
  • 将创建另一个完整的内存转储(或内核内存转储)文件。

内核内存转储

内核内存转储仅记录内核内存。 当计算机意外停止时,它会加快在日志中记录信息的过程。 必须具有足够大的页文件才能容纳内核内存。 对于 32 位系统,内核内存通常介于 150 MB 和 2 GB 之间。

此转储文件不包括未分配的内存或分配给用户模式程序的任何内存。 其中包括:

  • 内存被分配给最新支持的 Windows 版本中的内核和硬件抽象层(HAL)。
  • 分配给内核模式驱动程序和其他内核模式程序的内存。

在大多数情况下,此转储文件最有用。 它小于完整的内存转储文件。 但它只省略那些不太可能卷入问题的内存部分。

如果满足以下条件,则选中“覆盖任何现有文件”设置时 ,将覆盖上一个文件

  • 出现第二个问题。
  • 将创建另一个内核内存转储文件(或完整的内存转储文件)。

小型内存转储

小型内存转储记录最小的有用信息集,这些信息可能有助于识别计算机意外停止的原因。 此选项需要启动卷上至少 2 MB 的分页文件,并指定每次计算机意外停止时,Windows 2000 及更高版本都会创建新文件。 这些文件的历史记录存储在文件夹中。

此转储文件类型包括以下信息:

  • Stop 消息及其参数和其他数据
  • 已加载驱动程序的列表
  • 已停止的处理器的处理器上下文 (PRCB)
  • 停止的进程的进程信息和内核上下文 (EPROCESS)
  • 停止的线程的进程信息和内核上下文 (ETHREAD)
  • 停止的线程的内核模式调用堆栈

当空间有限时,此类转储文件非常有用。 但是,由于包含的信息有限,因此无法通过分析此文件发现未由在问题时运行的线程直接引起的错误。

如果满足以下条件,将保留上一个文件。

  • 出现第二个问题。
  • 创建第二个小内存转储文件。

为每个附加文件指定一个不同的名称。 日期在文件名中编码。 例如,Mini022900-01.dmp是 2000 年 2 月 29 日生成的第一个内存转储。 文件夹中保留 %SystemRoot%\Minidump 所有小型内存转储文件的列表。

活动内存转储

有关详细信息,请参阅 活动内存转储

配置转储类型

若要配置启动和恢复选项(包括转储类型),请执行以下步骤。

注意

由于 Windows 存在多个版本,因此在你的计算机上以下步骤可能会有所不同。 如果是这样,请参见您的产品文档来完成这些步骤。

  1. 单击「开始」,然后单击“控制面板”
  2. 单击“性能和维护,然后单击“系统”。
  3. “高级”选项卡上,单击“启动和恢复下的“设置”。

注意

必须重启 Windows 才能使更改生效。

各种转储类型的工具

可以使用 Windows 调试器加载完整的内存转储和内核内存转储。

启动和恢复的注册表值

以下注册表值在以下项下 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\CrashControl使用。

  • CrashDumpEnabled REG_DWORD 0x0 = 无
  • CrashDumpEnabled REG_DWORD 0x1 = 完整内存转储
  • CrashDumpEnabled REG_DWORD 0x2 = 内核内存转储
  • CrashDumpEnabled REG_DWORD 0x3 = 小型内存转储 (64 KB)
  • CrashDumpEnabled REG_DWORD 0x7 = 自动内存转储
  • CrashDumpEnabled REG_DWORD 0x1 和 FilterPages REG_DWORD 0x1 = 活动内存转储

CrashControl 的其他注册表值:

  • AutoReboot REG_DWORD 0x1
  • DumpFile REG_EXPAND_SZ %SystemRoot%\Memory.dmp
  • LogEvent REG_DWORD 0x1
  • MinidumpDir REG_EXPAND_SZ %SystemRoot%\Minidump
  • 覆盖REG_DWORD 0x1
  • SendAlert REG_DWORD 0x1

注意

必须重启 Windows 才能使更改生效。

测试以确保可以创建转储文件

有关如何将计算机配置为生成转储文件以进行测试的详细信息,请参阅 Windows 功能,允许使用键盘生成内存转储文件。

最大分页文件大小

注意

在 Windows Server 2025 中,由于 32 位整数溢出,你可能会看到不准确的可用磁盘空间。 可以使用 Get-WmiObject PowerShell cmdlet 查看准确的数字。 这可能会进一步阻止设置所需分页文件大小的功能。 作为一种解决方法,您可以通过注册表值 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles 来设置分页文件。

有关详细信息,请参阅 如何确定 64 位版本的 Windows 的相应页面文件大小