错误检查 0x1A:MEMORY_MANAGEMENT

MEMORY_MANAGEMENT 错误检查的值为 0x0000001A。 错误检查表明发生了严重的内存管理错误。

重要

这篇文章适合程序员阅读。 如果你是 Microsoft 客户,并且你的计算机显示蓝屏错误代码,请参阅对蓝屏错误进行故障排除

MEMORY_MANAGEMENT 参数

参数 1 标识完全冲突。

参数 1 错误消息的原因
0x31 映像重新定位修复表或代码流已损坏。 该错误可能是一个硬件错误。
0x3f 由于循环冗余校验 (CRC) 错误,一个页内操作失败。 参数 2 包含页面文件偏移量。 参数 3 包含页 CRC 值。 参数 4 包含预期的 CRC 值。
0x403 页表和页帧编号 (PFN) 不同步。此错误可能是一个硬件错误,尤其是在参数 3 和 4 仅相差一位时。
0x404 在删除系统页的过程中,发现 PFN 与当前页表条目 (PTE) 指针不一致。 参数 2 是预期的 PTE。 参数 3 是 PTE 内容。 参数 4 是 PFN 的 PTE。
0x411 PTE 已损坏。 参数 2 是 PTE 的地址。
0x1010 调用方正在解锁当前未锁定的可分页部分。 (此部分要么从未锁定,要么已被解锁两次。)
0x1233 驱动程序试图映射未锁定的物理内存页。 此操作是非法的,因为页面的内容或属性可能随时更改。 代码中的一个错误导致了映射调用。 参数 2 是驱动程序尝试映射的物理页的 PFN。
0x1234 调用方正在尝试锁定一个不存在的可分页部分。
0x1235 调用方尝试用无效映射保护 MDL。
0x1236 调用方指定了包含未锁定(或无效)物理页的 MDL。 参数 2 包含指向 MDL 的指针。 参数 3 包含指向无效 PFN 的指针。 参数 4 包含无效的 PFN 值。
0x1240 调用方为非常驻虚拟地址范围建立 MDL 是非法的。 参数 2 是 MDL。 参数 3 是 PTE 指针。
0x3300 在写入操作期间,引用的虚拟地址被错误地标记为“写入时复制”。 参数 2 是 FaultingAddress 的值。 参数 3 是 PTE 内容。 参数 4表 示虚拟地址空间类型。
0x3451 已调出的内核线程堆栈的 PTE 已损坏。
0x3453 由于未完成的引用,无法删除已退出进程的所有页表页。 此错误通常表示进程页表结构已损坏。
0x3470 缓存的内核堆栈在空闲列表中时已损坏。 此内存损坏表明问题很严重,调用堆栈可能是受害者,也可能是罪魁祸首。 参数 2 是虚拟地址。 参数 3 是虚拟地址 Cookie。
0x4477 驱动程序尝试写入系统进程的用户空间中未分配的地址。 参数 2 包含尝试写入的地址。
0x5100 分配位图已损坏。 内存管理器即将覆盖已在使用的虚拟地址。
0x5305 调用方正在指定要释放的无效池地址(参数 2)。 参数 2 是正在评估的虚拟地址。 参数 3 是区域大小。
0x6001 内存存储组件的专用内存范围已损坏,因此无法访问。 参数 2 是返回的状态。 参数 3 是存储的专用内存范围内的虚拟地址。 参数 4 是 MDL。
0x8886
0x8887
(Windows 7 及更高版本)。 备用列表中的两个页面本应具有相同的页面优先级值,但却没有相同的页面优先级值。 参数 4 中捕获了不同的值。
0x8888
0x8889
内部内存管理结构已损坏。
0x888A 内部内存管理结构(可能是 PTE 或 PFN)已损坏。
0x9696 遇到一个 PFN(参数 2),其链接已损坏,不再与其顶层进程相连。 此错误表明 PFN 结构已损坏。
0x15000 调用方要么提供了错误的地址,要么在错误的进程上下文中调用了此例程。 这两个操作都是非法的,因为我们不能取消保护由于这个错误而无法找到的范围。 参数 2 是正在评估的虚拟地址。
0x15001 取消保护以前已保护的内存的过程中发生错误。 如果调用方在错误的进程上下文中错误地调用了 MmUnsecureVirtualMemory,则可能发生此错误。
0x41202 在确定非零 PTE 的页面保护过程中,确定 PTE 已损坏。 参数 2 是 PTE 指针。 参数 3 是 PTE 内容。 参数 4 是虚拟地址描述符。
0x41286 调用方试图释放无效的池地址。
0x41785 工作集列表已损坏。
0x41287 保持工作集同步时出现非法页错误。 参数 2 包含引用的虚拟地址。
0x41790 页表页已损坏。 在 64 位版本的 Windows 上,参数 2 包含损坏页表页的 PFN 地址。 在 32 位版本的 Windows 上,参数 2 包含指向已使用 PTE 数的指针,参数 3 包含已使用 PTE 数。
0x41792 检测到损坏的 PTE。 参数 2 包含 PTE 的地址。 参数 3 和 4 包含 PTE 的低和高部分。
0x61941 分页层次结构已损坏。 参数 2 是指向导致故障的虚拟地址的指针。
0x61948 在递减 I/O 空间区域的引用计数过程中,无法找到该区域的记帐节点。 通常,此错误意味着参数范围从未锁定或已经解锁。 参数 2 是基本 I/O 帧。 参数 3 是区域内的页数。 参数 4 是找不到节点的特定 I/O 帧。
0x61949 IoPageFrameNode 值为 null。 参数 2 为 PageFrameIndex
0x6194A 减少正在取消映射的 I/O 空间物理页上的引用计数时出错。 正在取消引用当前未被引用的条目。 参数 2 和 3 描述了调用方正在取消映射的 I/O 空间范围。 参数 4 是应引用的 I/O 空间物理页,但尚未引用该页。
0x03030308 要删除(或截断)的范围已被加载程序使用。 它无法被安全移除,因此系统必须发出停止代码。 参数 2 为 HighestPhysicalPage

这些参数 1 值用于以前的 Windows 版本。

参数 1 错误消息的原因
0x777 调用方正在解锁当前未锁定的系统缓存地址。 (该地址要么从未映射过,要么被解锁了两次。)
0x778 系统正在使用最后一个系统缓存视图地址,而不是保留它。
0x780
0x781
映射参数系统缓存视图的 PTE 已损坏。
0x1000 MmGetSystemAddressForMdl* 的调用方试图将完全缓存的物理页面映射为非缓存页面。 该操作会导致硬件转换缓冲区条目冲突,因此已被操作系统拒绝。 由于调用方在请求的内存描述符列表 (MDL) 中指定了“故障时进行错误检查”,因此系统发出了一个错误检查。
0x1241 在调用生成 MDL 期间,MDL 的虚拟地址意外异步取消映射。 参数 2 是 MDL。 参数 3 是 PTE 指针。
0x5003 工作集空闲列表已损坏。 这可能是硬件错误。
0x5200 可用池列表上的页已损坏。 此错误可能是驱动程序中的 write-after-free 错误或上一页溢出造成的。 参数 2 包含可用池块的地址。 参数 4 包含预期位于该地址的值。 参数 3 包含找到的实际值。
0x8884
0x8885
(Windows 7 及更高版本)。 备用列表中的两个页面本应具有相同的页面优先级值,但却没有相同的页面优先级值。 参数 4 中捕获了不同的值。
0x41201 在查询虚拟地址的过程中,发现 PFN 与当前 PTE 指针不一致。 参数 2 是对应的 PTE。 参数 3 是 PTE 内容。 参数 4 是虚拟地址描述符。
0x41283 PTE 中编码的工作集索引已损坏。
0x41284 PTE 或工作集列表已损坏。
0x41793 页表页已损坏。 参数 2 包含指向上次处理的 PTE 的指针。 参数 3 包含找到的非零 PTE 数。 参数 4 包含页表中非零 PTE 的预期数量。
此内存参数已被弃用,在 Windows 10 1803 版本之后不再可用。
0x61940 PDE 意外失效。
0x61946 正在创建的 MDL 存在缺陷。 此错误几乎总是意味着驱动程序调用 MmProbeAndLockPages 存在问题。 通常情况下,在被要求处理分页读取时,驱动程序会尝试创建写入 MDL。
0x03030303 启动加载器已损坏。 (此值仅适用于 Intel Itanium 计算机。)

解决方法

!analyze 调试扩展会显示有关错误检查的信息。 调试扩展中的信息可能有助于确定根本原因。

运行 Windows 内存诊断工具来检查影响物理内存模块的问题可能也会有所帮助。

另请参阅

错误检查代码参考