错误检查 0x7E:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED 错误检查的值为 0x0000007E。 此错误检查表明系统线程产生了错误处理程序未捕获的异常。
重要
这篇文章适合程序员阅读。 如果您是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答。
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED 参数
参数 | 说明 |
---|---|
1 | 未处理的异常代码。 |
2 | 发生异常的地址。 |
3 | 异常记录的地址。 |
4 | 上下文记录的地址。 |
原因
此错误检查表明系统线程产生了错误处理程序未捕获的异常。 若要对其进行解释,必须确定生成的具体异常。
常见的异常代码如下:
0x80000002:STATUS_DATATYPE_MISALIGNMENT 表示遇到未对齐的数据引用。
0x80000003:STATUS_BREAKPOINT 表示在未将内核调试器附加到系统时遇到断点或 ASSERT。
0xC0000005:STATUS_ACCESS_VIOLATION 表示发生了内存访问冲突。
有关异常代码的完整列表,请参阅 NTSTATUS 值。 异常代码在 ntstatus.h(Windows 驱动程序工具包提供的标头文件)中定义。 有关详细信息,请参阅 Windows 驱动程序工具包中的头文件。
解决方法
如果计划调试此问题,异常地址(参数 2)应标识导致此问题的驱动程序或函数。
如果错误检查消息中按名称列出了某个驱动程序,请禁用或删除该驱动程序。 如果问题缩小到单个驱动程序,请在代码中设置断点并单步前进,以定位故障并深入了解导致崩溃的事件。
!analyze 调试程序扩展显示有关错误检查的信息,有助于确定根本原因。
可以使用 !thread 扩展以及 dds、dps 和 dqs(显示字词和符号) 命令完成更多分析。 当 WinDbg 报告“可能由:ntkrnlmp.exe 引起”时,此技术是合理的。
如果出现异常代码 0x80000003,则表示命中了硬编码断点或断言,但系统是使用 /NODEBUG 开关启动的。 此问题应该不会经常发生。 如果重复发生,请确保内核调试器已连接,并且已使用 /DEBUG 开关启动系统。
如果出现异常代码 0x80000002,陷阱帧会提供更多信息。
有关 WinDbg 和 !analyze 的详细信息,请参阅:
注解
如果您不具备使用 Windows 调试器来解决此问题的能力,则应使用一些基本的故障排除技术:
在事件查看器中检查系统日志以获取更多错误消息,这可能有助于识别导致错误检查 0x7E 的设备或驱动程序。
如果在错误检查消息中标识了驱动程序,请禁用该驱动程序,或与制造商联系以获取驱动程序更新。
请咨询硬件供应商,了解是否有任何 ACPI 或其他固件更新。 硬件问题(如系统不兼容、内存冲突和 IRQ 冲突)也可能导致此错误。
禁用 BIOS 的内存缓存/重影,尝试解决错误。 还可以运行系统制造商提供的硬件诊断程序。
确保安装的任何新硬件都与已安装的 Windows 版本兼容。 例如,可以在 Windows 10 规范中获取所需硬件的相关信息。
有关一般故障排除详细信息,请参阅分析错误检查蓝屏数据。