您当前的位置:首页 >> 资讯 >> 详情
Windows蓝屏KMODE_EXCEPTION_NOT_HANDLED修复教程
来源: 互联网      时间:2023-08-10 18:57:26

蓝屏代码0x0000001E代表"KMODE_EXCEPTION_NOT_HANDLED",这意味着在内核模式下发生了一个无法处理的异常。通常情况下,这是由于驱动程序或硬件问题引起的,导致系统崩溃并显示蓝屏错误。


(相关资料图)

要解决这个问题,可以尝试以下方法:

方法一:检查硬件兼容性

该错误可能是由于硬件设备与操作系统不兼容引起的,确保所有安装的硬件设备都与操作系统和其他硬件兼容,如果无法确定具体的不兼容问题,可以尝试一一移除硬件设备,直到找到引起问题的设备。

方法二:检查系统文件完整性

打开命令提示符,并以管理员身份运行sfc /scannow命令,以检查和修复系统文件的一致性。

方法三:更新或回滚驱动程序

尝试更新所有设备的驱动程序到最新版本,如果蓝屏发生后出现此错误,可能是由于某个驱动程序的冲突或损坏导致的,你可以访问硬件制造商的网站,下载并安装最新的驱动程序;或者,你也可以尝试回滚到之前的驱动程序版本。

方法四:使用一键修复工具助手(强烈推荐)

1、首先你的电脑必须下载与完成安装完成快快蓝屏修复助手。如果你还没有安装点击下方链接下载。

下载地址:>>>快快蓝屏修复助手<<<

提示:安装路径不要选择C盘,避免产生问题造成损失。

2、找到你电脑中的快快蓝屏修复助手,点击进入。看到首页后,点击首页一键扫描按钮开始扫描。等待几分钟,就能获取你急切想要的结果。

3、扫描完成后会显示电脑的所有蓝屏记录以及蓝屏的详细信息。

4、解决方案页面显示了导致该次蓝屏的具体原因和解决方案,点击右上角的一键修复进行修复。

5、切记,当修复完成之后我们还是需要重新启动计算机的。毕竟一切修复的结果,需要重新后,才能被系统认可。

当你完成重启后,你电脑的蓝屏问题已经基本解决了。相信小编,不要急需卸载快快蓝屏修复助手。毕竟它强大的功能是你未来的一个保障,可以随时随地为你服务,让你再次遇到蓝屏问题不在抓狂。

其他相关信息:

KMODE_EXCEPTION_NOT_HANDLED bug 检查 值为 0x0000001E。 bug 检查指示内核模式程序生成了错误处理程序未捕获的异常。

KMODE_EXCEPTION_NOT_HANDLED参数

参数说明
1未处理的异常代码。
2发生异常的地址。
3异常记录的异常信息参数 0。
4异常记录的异常信息参数 0。

原因

若要检查解释此 bug,必须确定生成的异常。

常见的异常代码包括:

0x80000002:STATUS_DATATYPE_MISALIGNMENT

遇到未对齐的数据引用。

0x80000003:STATUS_BREAKPOINT

没有内核调试器连接到系统时,遇到断点或 ASSERT。

0xC0000005:STATUS_ACCESS_VIOLATION

出现内存访问冲突。 (Bug 检查的参数 4 是驱动程序尝试访问的地址。)

有关异常代码的完整列表,请参阅 NTSTATUS 值。 异常代码在 ntstatus.h 中定义,ntstatus.h是 Windows 驱动程序工具包中的头文件。 有关详细信息,请参阅 Windows 驱动程序工具包中的头文件。

注解

如果你没有能力调试此问题,可以使用 蓝屏数据中所述的一些基本故障排除技术。 如果驱动程序标识在错误检查消息中,禁用该驱动程序或咨询驱动程序更新的制造商。

硬件不兼容

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

设备驱动程序或系统服务有故障

有故障的设备驱动程序或系统服务可能会导致此错误。 硬件问题(例如 BIOS 不兼容、内存冲突和 IRQ 冲突)也可能会生成此错误。

如果在 bug 检查消息中按名称列出了驱动程序,请禁用或删除该驱动程序。 禁用或删除最近添加的所有驱动程序或服务。 如果在启动序列期间发生错误,并且系统分区的格式设置为 NTFS 文件系统,则可以使用安全模式在设备管理器禁用驱动程序。

检查系统登录事件查看器以获取更多错误消息,这些错误消息可能有助于识别导致 bug 检查 0x1E的设备或驱动程序。 此外,请运行系统制造商提供的硬件诊断,尤其是内存扫描程序。 有关这些故障排除步骤的详细信息,请参阅计算机所有者手册。

生成此消息的错误可能会在 Windows 安装程序期间首次重启或安装程序完成后发生。 错误的一个可能原因是系统 BIOS 不兼容。 可以通过升级系统 BIOS 版本来解决 BIOS 问题。

解决方法

调试此问题时,可能会发现很难获取堆栈跟踪。 异常地址 (参数 2) 应标识导致问题的驱动程序或函数。

异常代码0x80000003表示命中了硬编码断点或断言,但系统已使用 /NODEBUG开关启动。 此问题应很少发生。 如果反复发生,请确保已连接内核调试器,并且系统已使用 /DEBUG开关启动。

如果发生异常代码0x80000002,陷阱帧将提供更多信息。

未知原因

如果异常的具体原因未知,请考虑使用以下过程来获取堆栈跟踪。

注意

此过程假定你可以找到 NT!PspUnhandledExceptionInSystemThread。 但是,在某些情况下(例如在访问冲突崩溃中),你将无法找到 NT!PspUnhandledExceptionInSystemThread。 在这种情况下,请查找 ntoskrnl!KiDispatchException。 传递给此函数的第三个参数是陷阱帧地址。 使用此地址使用 .trap (显示陷阱帧) 命令将寄存器上下文设置为正确的值。 然后,可以执行堆栈跟踪并发出其他命令。

获取堆栈跟踪

在正常堆栈跟踪过程失败时获取堆栈跟踪:

使用 kb (显示堆栈回溯) 命令在堆栈跟踪中显示参数。 查找对 的 NT!PspUnhandledExceptionInSystemThread调用。 (如果未列出此函数,请参阅前面的说明。)

的第一个参数 NT!PspUnhandledExceptionInSystemThread是指向结构的指针。 指针包含指向语句的 except指针:

typedef struct _EXCEPTION_POINTERS {    PEXCEPTION_RECORD ExceptionRecord;    PCONTEXT ContextRecord;    } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;ULONG PspUnhandledExceptionInSystemThread(    IN PEXCEPTION_POINTERS ExceptionPointers    )

在该地址上使用 dd (显示内存) 命令来显示所需的数据。

第一个检索到的值是异常记录。 对于异常记录,请使用 .exr (显示异常记录) 命令。

第二个值是上下文记录。 对于上下文记录,请使用 .cxr (显示上下文记录) 命令。

命令 .cxr执行后,使用 kb命令显示基于上下文记录信息的堆栈跟踪。 此堆栈跟踪指示发生未经处理的异常的调用堆栈。

示例 bug 检查

以下示例演示 x86 处理器上的 bug 检查 0x1E:

kd> .bugcheck                 get the bug check dataBugcheck code 0000001eArguments c0000005 8013cd0a 00000000 0362cffffkd> kb                        start with a stack trace FramePtr  RetAddr   Param1   Param2   Param3   Function Name 8013ed5c  801263ba  00000000 00000000 fe40cb00 NT!_DbgBreakPoint 8013eecc  8013313c  0000001e c0000005 8013cd0a NT!_KeBugCheckEx+0x194fe40cad0  8013318e  fe40caf8 801359ff fe40cb00 NT!PspUnhandledExceptionInSystemThread+0x18fe40cad8  801359ff  fe40cb00 00000000 fe40cb00 NT!PspSystemThreadStartup+0x4afe40cf7c  8013cb8e  fe43a44c ff6ce388 00000000 NT!_except_handler3+0x4700000000  00000000  00000000 00000000 00000000 NT!KiThreadStartup+0xekd> dd fe40caf8 L2            dump EXCEPTION_POINTERS structure0xFE40CAF8  fe40cd88 fe40cbc4                   ..@...@.kd> .exr fe40cd88             first DWORD is the exception recordException Record @ FE40CD88:   ExceptionCode: c0000005  ExceptionFlags: 00000000  Chained Record: 00000000ExceptionAddress: 8013cd0aNumberParameters: 00000002   Parameter[0]: 00000000   Parameter[1]: 0362cfffkd> .cxr fe40cbc4             second DWORD is the context recordCtxFlags: 00010017eax=00087000 ebx=00000000 ecx=03ff0000 edx=ff63d000 esi=0362cfff edi=036b3fffeip=8013cd0a esp=fe40ce50 ebp=fe40cef8 iopl=0         nv dn ei pl nz ac po cyvip=0    vif=0cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=000106170x8013cd0a  f3a4             rep movsbkd> kb                        kb gives stack for context recordChildEBP RetAddr  Args to Childfe40ce54 80402e09 ff6c4000 ff63d000 03ff0000 NT!_RtlMoveMemory@12+0x3efe40ce68 80403c18 ffbc0c28 ff6ce008 ff6c4000 HAL!_HalpCopyBufferMap@20+0x49fe40ce9c fe43b1e4 ff6cef90 ffbc0c28 ff6ce009 HAL!_IoFlushAdapterBuffers@24+0x148fe40ceb8 fe4385b4 ff6ce388 6cd00800 ffbc0c28 QIC117!_kdi_FlushDMABuffers@20+0x28fe40cef8 fe439894 ff6cd008 ffb6c820 fe40cf4c QIC117!_cqd_CmdReadWrite@8+0x26efe40cf18 fe437d92 ff6cd008 ffb6c820 ff6e4e50 QIC117!_cqd_DispatchFRB@8+0x210fe40cf30 fe43a4f5 ff6cd008 ffb6c820 00000000 QIC117!_cqd_ProcessFRB@8+0x134fe40cf4c 80133184 ff6ce388 00000000 00000000 QIC117!_kdi_ThreadRun@4+0xa9fe40cf7c 8013cb8e fe43a44c ff6ce388 00000000 NT!_PspSystemThreadStartup@8+0x40
标签: