错误检查 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 内存诊断工具来检查影响物理内存模块的问题可能也会有所帮助。