https://onitroad.com 更多教程

原因

此错误检查通常有三种不同的原因:

  • 驱动程序无意或者故意修改了关键内核代码或者数据。Microsoft Windows Server 2003 with Service Pack 1 (SP1) 和用于基于 x64 的计算机的更高版本的 Windows 不允许修补内核,除非通过授权的 Microsoft 发起的热补丁。
  • 开发人员尝试使用系统启动时未连接的内核调试器设置正常的内核断点。正常断点 (bp) 只能在调试器在启动时连接时设置。

可以随时设置处理器断点 (ba)。

  • 发生硬件损坏。例如,内核代码或者数据可能已存储在失败的内存中。
Windows 蓝屏代码 0x109:CRITICAL_STRUCTURE_CORRUPTION

CRITICAL_STRUCTURE_CORRUPTION 错误检查的值为 0x00000109.
这表明内核已检测到关键内核代码或者数据损坏。

解决方法

!analyze 调试扩展显示有关错误检查的信息,有助于确定根本原因。
详细步骤查看我们的教程 在windows 中使用WinDBG 调试dmp文件

首先,使用 k、kb、kc、kd、kp、kP、kv(显示堆栈回溯)命令检查堆栈跟踪。

我们可以指定处理器编号来检查所有处理器上的堆栈。

我们还可以在导致此停止代码的代码中设置一个断点,并尝试单步前进到出错的代码中。

有关详细信息,请参阅以下主题:

使用 Windows 调试器 (WinDbg) 进行故障转储分析

如果我们不具备使用 Windows 调试器来解决此问题的能力,则可以使用一些基本的故障排除技术。

  • 检查事件查看器中的系统日志以获取可能有助于识别导致此错误检查的设备或者驱动程序的其他错误消息。
  • 如果在错误检查消息中识别出驱动程序,请禁用该驱动程序或者与制造商联系以获取驱动程序更新。
  • 运行 Windows 内存诊断工具来测试内存。在控制面板搜索框中,键入内存,然后选择诊断计算机的内存问题。 运行测试后,使用事件查看器在系统日志下查看结果。查找 MemoryDiagnostics-Results 条目以查看结果。
  • 我们可以尝试运行系统制造商提供的硬件诊断程序。
  • 确认安装的任何新硬件都与安装的 Windows 版本兼容。例如,我们可以在 Windows 10 规范中获取有关所需硬件的信息。
  • 有关其他常规故障排除信息,请参阅蓝屏数据。

CRITICAL_STRUCTURE_CORRUPTION 参数

参数说明
1保留
2保留
3保留
4损坏区域的类型。(请参阅本页后面的表格。)

参数 4 的值指示损坏区域的类型。

参数 4损坏区域的类型、损坏类型或者导致损坏的操作类型
0x0通用数据区域
0x1函数修改
0x2处理器中断调度表 (IDT)
0x3处理器全局描述符表 ( GDT)
0x41 类进程列表损坏
0x52 类进程列表损坏
0x6调试例程修改
0x7关键 MSR 修改
0x8对象类型
0x9处理器 IVT
0xA系统服务功能修改
0xB通用会话数据区域
0xC会话功能或者 .pdata
0xD修改导入表
0xE修改会话导入表
0xFps Win32 callout修改
0x10调试开关例程修改
0x11IRP分配器修改
0x12驱动调用调度器修改
0x13IRP完成调度器修改
0x14IRP解除分配器修改
0x15A处理器控制寄存器
0x16临界浮点控制寄存器修改
0x17本地APIC修改
0x18内核通知callout修改
0x19加载模块列表修改
0x1AType 3进程列表损坏
0x1BType 4进程列表损坏
0x1C驱动程序对象损坏
0x1D执行回调对象修改
0x1E模块填充
0x1F修改 受保护进程修改
0x20通用数据区域
0x21页面哈希不匹配
0x22会话页哈希不匹配
0x23加载配置目录修改
0x24倒置函数表修改
0x25会话配置修改
0x26扩展处理器控制寄存器
0x27类型 1 池损坏
0x28类型 2 池损坏
0x29类型 3 池损坏
0x101一般池损坏
0x102win32k.sys 的修改
日期:2020-09-17 00:15:34 来源:oir作者:oir