# Windows 内存诊断工具与 memtest：从现象到 RMA

> 跑 mdsched、从事件查看器读结果，再判断一次通过够不够、什么时候要上 MemTest86，以及怎么隔离到内存条、槽位或 CPU 内存控制器。

**测试环境**

- 版本号: 26300.9457
- 版本: Pro (26H2)
- 架构: x64
- 证据: E1
- 核验日期: 2026-10-29

## 一句话结论

坏内存很少自报家门，它表现为**随机**且**会转移**的故障：

- 每次蓝屏码都不一样（`0x1A`、`0x50`、`0x3B`、`0x124`）；
- 应用在不同 DLL 里崩溃；
- 安装程序报校验和错误；
- 文件静默损坏。

方法是：先证明是内存，再隔离是哪一条，最后判断是条子、槽位还是 CPU。

## 第一步：排除伪装者

在怪内存条之前，先查看起来一模一样的问题：

```powershell
Get-PhysicalDisk | Select-Object FriendlyName,HealthStatus,OperationalStatus
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='disk','Ntfs','volmgr'} -MaxEvents 20 |
  Select-Object TimeCreated,ProviderName,Id,LevelDisplayName

Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-WHEA-Logger'} -MaxEvents 20 |
  Select-Object TimeCreated,Id,LevelDisplayName,Message
```

有坏道的 SSD 会产生校验失败和蓝屏，看起来和坏内存完全一样。先看 SMART——比跑内存测试快得多。

## 第二步：主动复现

内存故障与负载、温度相关。待机一小时能过的机器，真实工作一小时后可能就崩。

用会大量触碰内存的负载：

- 大型编译或解压；
- 分配固定内存的虚拟机；
- 多轮内存测试。

记录你当时在做什么、多久崩溃。开机三分钟就崩，和四小时后才崩，是两类不同的问题。

## 第三步：正确测试内存

两种选择：

- **Windows 内测试**（快、可信度低）：Windows 内存诊断安排在下次启动时跑。方便，但用的是运行中系统的内存映射。
- **启动盘测试**（慢、可信）：过夜跑多轮完整测试。一轮不算结论。

### 跑 Windows 内存诊断，并读出结果

```powershell
mdsched.exe
```

选「立即重启并检查问题」，或安排下次启动时执行。测试在 Windows 之外运行，处在预启动环境里，没有驱动跟它抢内存——这就是它比任何系统内检测工具都可信的原因。

结果会在下次启动后写入系统日志：

```powershell
Get-WinEvent -LogName System -MaxEvents 500 |
  Where-Object { $_.ProviderName -match 'MemoryDiagnostic' } |
  Select-Object TimeCreated,Id,LevelDisplayName,Message | Format-List
```

| 事件 ID | 含义 |
|---|---|
| **1201** | 测试完成且**发现错误** |
| **1101** | 测试开始／记录配置 |

**通过时根本不会产生 1201 事件**。没有「未发现错误」这种消息可找——错误事件不存在，就是通过。多数教程把这件事说反了。

一次通过不能证明什么：只有反复读写才失效的边缘单元、不稳定的 XMP/EXPO 配置（该测试跑在默认频率）、需要升温才出现的故障，以及到底是哪一条内存有问题。所以第三步还要继续用可启动测试器。

让结果有意义的测试规则：
1. **一次只测一条**，插在主槽位。
2. **在默认频率下测**（关 XMP）。开着 XMP 你测的是超频，不是内存条。
3. **测几小时**，不是几分钟。
4. **原样记录错误**——地址、测试项、第几轮。

## 第四步：隔离部件

| 结果 | 结论 |
|---|---|
| 同一条在任何槽位都报错 | 条子坏了，更换 |
| 任何条子插某个槽位才报错 | 槽位或走线问题，可能的话换板验证 |
| 所有条子、所有槽位都报错 | CPU 内存控制器、固件或供电 |
| 只有插满时才报错 | 控制器负载/rank 限制；减少插条或降频 |
| 只有开 XMP 才报错 | 配置在该平台上不稳，见 [XMP](https://winbook.fyi/zh/hardware/ram/xmp-expo/) |

换硬件之前先**更新固件**。内存训练与兼容性修复出现在 BIOS/UEFI 更新里的频率，比多数人以为的高。

## 第五步：RMA 要留什么证据

保修部门会拒绝含糊的说法。保留：

- 具体故障（蓝屏码、事件日志、截图）；
- 内存测试日志（轮次、出错地址）；
- 故障时的配置（频率、槽位、XMP 状态）；
- 内存条料号与序列号；
- 已排除的项（SSD、电源、驱动）。

> **警告: 不要用降频来「修好」它**
>
> 降频可能只是掩盖临界故障，而不是修复。默认频率下都不稳，那就是故障——降频是给"马上要换或要返修"的机器用的临时手段。

## 第六步：换完之后

1. 新条单独测，默认频率，多轮。
2. 一条一条把其余内存加回去。
3. 只有确实需要才重新开 XMP，并重跑验证。
4. 观察 WHEA 一周。

## 相关

- [ECC 与 WHEA](https://winbook.fyi/zh/hardware/ram/ecc-whea/)
- [内存压缩与页面文件](https://winbook.fyi/zh/hardware/ram/compression-pagefile/)
- [硬件专区总览](https://winbook.fyi/zh/hardware/)

## 实验室边界

E1。流程来自微软（WHEA、内存诊断）与平台厂商的标准做法。实验室无法给虚拟机注入内存故障，因此没有复现坏内存条。

## 来源

- [Microsoft Learn — WHEA 参考](https://learn.microsoft.com/zh-cn/windows-hardware/drivers/whea/)
- [Microsoft Learn — Win32_PhysicalMemory](https://learn.microsoft.com/zh-cn/windows/win32/cimwin32prov/win32-physicalmemory)
- [Microsoft Learn — Win32_PageFileSetting](https://learn.microsoft.com/zh-cn/windows/win32/cimwin32prov/win32-pagefilesetting)

---

来源页面: https://winbook.fyi/zh/hardware/ram/diagnostics/
