电脑蓝屏KMODE_EXCEPTION_NOT_HANDLED怎么解决

小编:小蝶 更新时间:2023-08-23

蓝屏代码0x0000001E代表"KMODE_EXCEPTION_NOT_HANDLED",这意味着发生了一个内核模式异常,但操作系统无法处理它。这可能是由于软件或驱动程序的错误引起的。

电脑蓝屏KMODE_EXCEPTION_NOT_HANDLED怎么解决
快快蓝屏修复助手
文件大小:5.70 MB软件平台:WinAll

快快蓝屏修复助手可以帮你修复各类蓝屏异常和错误问题,能快速检测软件、硬件和驱动故障。分析蓝屏日志。

立即下载

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

方法一:清理和冷却系统

确保计算机内部没有过多的灰尘积累,并且正常冷却,过热可能导致计算机崩溃。

方法二:检查系统配置

有时候系统设置不正确也会导致该错误,确保BIOS和其他系统设置都是正确的,可以恢复默认设置来排除此问题。

方法三:执行系统恢复

运行Windows自带的系统恢复功能,可以修复可能导致此错误的系统文件或配置问题,你可以选择使用系统还原点,或者进行操作系统的重新安装。

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

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

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

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

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

电脑蓝屏KMODE_EXCEPTION_NOT_HANDLED怎么解决

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

电脑蓝屏KMODE_EXCEPTION_NOT_HANDLED怎么解决

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

电脑蓝屏KMODE_EXCEPTION_NOT_HANDLED怎么解决

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

电脑蓝屏KMODE_EXCEPTION_NOT_HANDLED怎么解决

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

其他相关信息:

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 data
Bugcheck code 0000001e
Arguments c0000005 8013cd0a 00000000 0362cffff

kd> 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+0x194
fe40cad0  8013318e  fe40caf8 801359ff fe40cb00 NT!PspUnhandledExceptionInSystemThread+0x18
fe40cad8  801359ff  fe40cb00 00000000 fe40cb00 NT!PspSystemThreadStartup+0x4a
fe40cf7c  8013cb8e  fe43a44c ff6ce388 00000000 NT!_except_handler3+0x47
00000000  00000000  00000000 00000000 00000000 NT!KiThreadStartup+0xe

kd> dd fe40caf8 L2            dump EXCEPTION_POINTERS structure
0xFE40CAF8  fe40cd88 fe40cbc4                   ..@...@.

kd> .exr fe40cd88             first DWORD is the exception record
Exception Record @ FE40CD88:
   ExceptionCode: c0000005
  ExceptionFlags: 00000000
  Chained Record: 00000000
ExceptionAddress: 8013cd0a
NumberParameters: 00000002
   Parameter[0]: 00000000
   Parameter[1]: 0362cfff

kd> .cxr fe40cbc4             second DWORD is the context record
CtxFlags: 00010017
eax=00087000 ebx=00000000 ecx=03ff0000 edx=ff63d000 esi=0362cfff edi=036b3fff
eip=8013cd0a esp=fe40ce50 ebp=fe40cef8 iopl=0         nv dn ei pl nz ac po cy
vip=0    vif=0
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010617
0x8013cd0a  f3a4             rep movsb

kd> kb                        kb gives stack for context record
ChildEBP RetAddr  Args to Child
fe40ce54 80402e09 ff6c4000 ff63d000 03ff0000 NT!_RtlMoveMemory@12+0x3e
fe40ce68 80403c18 ffbc0c28 ff6ce008 ff6c4000 HAL!_HalpCopyBufferMap@20+0x49
fe40ce9c fe43b1e4 ff6cef90 ffbc0c28 ff6ce009 HAL!_IoFlushAdapterBuffers@24+0x148
fe40ceb8 fe4385b4 ff6ce388 6cd00800 ffbc0c28 QIC117!_kdi_FlushDMABuffers@20+0x28
fe40cef8 fe439894 ff6cd008 ffb6c820 fe40cf4c QIC117!_cqd_CmdReadWrite@8+0x26e
fe40cf18 fe437d92 ff6cd008 ffb6c820 ff6e4e50 QIC117!_cqd_DispatchFRB@8+0x210
fe40cf30 fe43a4f5 ff6cd008 ffb6c820 00000000 QIC117!_cqd_ProcessFRB@8+0x134
fe40cf4c 80133184 ff6ce388 00000000 00000000 QIC117!_kdi_ThreadRun@4+0xa9
fe40cf7c 8013cb8e fe43a44c ff6ce388 00000000 NT!_PspSystemThreadStartup@8+0x40