错误检查 0x109:CRITICAL_STRUCTURE_CORRUPTION
CRITICAL_STRUCTURE_CORRUPTION 错误检查的值为 0x00000109。 这表示内核检测到关键内核代码或数据损坏。
重要
这篇文章适合程序员阅读。 如果您是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答。
CRITICAL_STRUCTURE_CORRUPTION 参数
参数 | 说明 |
---|---|
1 |
保留 |
2 |
预留 |
3 |
预留 |
4 |
损坏区域的类型。 (请参阅本页后面的表格) |
参数 4 的值指示损坏区域的类型。
参数 4 | 损坏区域的类型、损坏类型或导致损坏的操作类型 |
---|---|
0x0 |
通用数据区域 |
0x1 |
函数修改 |
0x2 |
处理器中断调度表 (IDT) |
0x3 |
处理器全局描述符表 (GDT) |
0x4 |
类型 1 进程列表损坏 |
0x5 |
类型 2 进程列表损坏 |
0x6 |
调试例程修改 |
0x7 |
关键 MSR 修改 |
0x8 |
对象类型 |
0x9 |
处理器 IVT |
0xA |
修改系统服务函数 |
0xB |
通用会话数据区域 |
0xC |
修改会话函数或 .pdata |
0xD |
修改导入表 |
0xE |
修改会话导入表 |
0xF |
Ps Win32 标注修改 |
0x10 |
调试开关例程修改 |
0x11 |
IRP 分配器修改 |
0x12 |
驱动程序调用调度程序修改 |
0x13 |
IRP 完成调度程序修改 |
0x14 |
IRP 释放器修改 |
0x15 |
处理器控制寄存器 |
0x16 |
关键浮点控制寄存器修改 |
0x17 |
本地 APIC 修改 |
0x18 |
内核通知标注修改 |
0x19 |
加载的模块列表修改 |
0x1A |
类型 3 进程列表损坏 |
0x1B |
类型 4 进程列表损坏 |
0x1C |
驱动程序对象损坏 |
0x1D |
执行回调对象修改 |
0x1E |
修改模块填充 |
0x1F |
修改受保护的进程 |
0x20 |
通用数据区域 |
0x21 |
页面哈希不匹配 |
0x22 |
会话页哈希不匹配 |
0x23 |
加载配置目录修改 |
0x24 |
倒排函数表修改 |
0x25 |
会话配置修改 |
0x26 |
扩展处理器控制寄存器 |
0x27 |
类型 1 池损坏 |
0x28 |
类型 2 池损坏 |
0x29 |
类型 3 池损坏 |
0x101 |
常规池损坏 |
0x102 |
修改 win32k.sys |
原因
此错误检查通常有三个不同的原因:
驱动程序无意或故意修改了关键内核代码或数据。 Microsoft Windows Server 2003 Service Pack 1 (SP1) 和更高版本的 Windows(基于 x64 的计算机)不允许修补内核,除非通过授权的 Microsoft 源热修补程序。
开发人员尝试使用启动系统时未附加的内核调试器设置正常的内核断点。 仅当在启动时附加调试器时,才能设置正常的断点 (bp)。 可以随时设置处理器断点 (ba)。
发生硬件损坏。 例如,内核代码或数据可能已经存储在失败的内存中。
解决方法
!analyze 调试扩展显示有关错误检查的信息,并有助于确定根本原因。
开始时,使用 k、kb、kc、kd、kp、kP、kv(显示堆栈回溯)命令检查堆栈跟踪。 可以指定处理器编号以检查所有处理器上的堆栈。
您还可以在导致此停止代码的代码中设置断点,并尝试单步执行故障代码。
有关详细信息,请参阅以下主题:
使用 Windows 调试器 (WinDbg) 进行故障转储分析
如果您不具备使用 Windows 调试器来解决此问题的能力,则可以使用一些基本的故障排除技术。
在事件查看器中检查系统日志以获取其他错误消息,这可能有助于识别导致此错误检查的设备或驱动程序。
如果在错误检查消息中标识了驱动程序,请禁用该驱动程序,或与制造商联系以获取驱动程序更新。
运行 Windows 内存诊断工具以测试内存。 在控制面板搜索框中键入“内存”,然后选择诊断计算机内存问题。运行测试后,使用事件查看器查看系统日志下的结果。 查找“内存诊断结果”条目以查看结果。
你可尝试运行系统制造商提供的硬件诊断。
确保安装的任何新硬件都与已安装的 Windows 版本兼容。 例如,可以在 Windows 10 规范中获取所需硬件的相关信息。
有关其他常规故障排除信息,请参阅分析错误检查蓝屏数据。