Bug 检查 0x109:CRITICAL_STRUCTURE_CORRUPTION

CRITICAL_STRUCTURE_CORRUPTION Bug 检查的值为 0x00000109。 这表示内核检测到关键内核代码或数据损坏。

重要

这篇文章适合程序员阅读。 如果您是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答

CRITICAL_STRUCTURE_CORRUPTION 参数

参数 说明

1

保留

2

Reserved

3

Reserved

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

原因

此 Bug 检查通常有三个不同的原因:

  1. 驱动程序无意或故意修改了关键内核代码或数据。 Microsoft Windows Server 2003 Service Pack 1 (SP1) 和更高版本的 Windows(基于 x64 的计算机)不允许修补内核,除非通过授权的 Microsoft 源热修补程序。

  2. 开发人员尝试使用启动系统时未附加的内核调试器设置正常的内核断点。 仅当在启动时附加调试器时,才能设置正常的断点 (bp)。 可以随时设置处理器断点 (ba)。

  3. 发生硬件损坏。 例如,内核代码或数据可能已经存储在失败的内存中。

解决方法

!analyze 调试扩展显示有关 bug 检查的信息,并有助于确定根本原因

开始时,使用 k、kb、kc、kd、kp、kP、kv(显示堆栈回溯)命令检查堆栈跟踪。 可以指定处理器编号以检查所有处理器上的堆栈。

您还可以在导致此停止代码的代码中设置断点,并尝试单步执行故障代码。

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

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

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

  • 在事件查看器中检查系统日志以获取其他错误消息,这可能有助于识别导致此 Bug 检查的设备或驱动程序。

  • 如果在 Bug 检查消息中标识了驱动程序,请禁用该驱动程序,或与制造商联系以获取驱动程序更新。

  • 运行 Windows 内存诊断工具以测试内存。 在控制面板搜索框中键入“内存”,然后选择诊断计算机内存问题。运行测试后,使用事件查看器查看系统日志下的结果。 查找“内存诊断结果”条目以查看结果

  • 你可尝试运行系统制造商提供的硬件诊断。

  • 确保安装的任何新硬件都与已安装的 Windows 版本兼容。 例如,可以在 Windows 10 规范中获取所需硬件的相关信息。

  • 有关其他常规故障排除信息,请参阅蓝屏数据