蓝屏代码0x00000139代表"KERNEL_SECURITY_CHECK_FAILURE",这意味着在内核级别的安全检查中发生了错误。这可能是由于驱动程序或系统文件的问题引起的。出现这个错误时,系统会崩溃并显示蓝屏。
要解决这个问题,可以尝试以下方法:
(资料图片)
方法一:检查内存问题
运行Windows自带的内存诊断工具(Windows Memory Diagnostic),以检查系统内存是否存在问题。
方法二:检查并重置内存配置
使用Windows自带的内存诊断工具进行内存测试,并根据测试结果采取相应的措施,如更换损坏的内存模块或调整BIOS设置。
方法三:回滚驱动程序
如果最近更新了驱动程序,并且问题发生在更新后,请尝试将驱动程序回滚到先前的版本。
方法四:使用一键修复工具助手(强烈推荐)
1、首先你的电脑必须下载与完成安装完成快快蓝屏修复助手。如果你还没有安装点击下方链接下载。
下载地址:>>>快快蓝屏修复助手<<<
提示:安装路径不要选择C盘,避免产生问题造成损失。
2、找到你电脑中的快快蓝屏修复助手,点击进入。看到首页后,点击首页一键扫描按钮开始扫描。等待几分钟,就能获取你急切想要的结果。
3、扫描完成后会显示电脑的所有蓝屏记录以及蓝屏的详细信息。
4、解决方案页面显示了导致该次蓝屏的具体原因和解决方案,点击右上角的一键修复进行修复。
5、切记,当修复完成之后我们还是需要重新启动计算机的。毕竟一切修复的结果,需要重新后,才能被系统认可。
当你完成重启后,你电脑的蓝屏问题已经基本解决了。相信小编,不要急需卸载快快蓝屏修复助手。毕竟它强大的功能是你未来的一个保障,可以随时随地为你服务,让你再次遇到蓝屏问题不在抓狂。
其他相关信息:
KERNEL_SECURITY_CHECK_FAILURE bug 检查 的值为 0x00000139。 此 bug 检查指示内核已检测到关键数据结构的损坏。
bug 检查0x139 KERNEL_SECURITY_CHECK_FAILURE参数
参数 | 描述 |
---|---|
1 | 损坏的类型。 有关详细信息,请参阅下表。 |
2 | 导致 bug 的异常的陷阱帧的地址检查 |
3 | 导致 bug 的异常记录的地址检查 |
4 | 保留 |
下表描述了参数 1 的可能值。
参数 1 | 描述 |
---|---|
0 | 基于堆栈的缓冲区已溢出 (旧版 /GS 冲突) 。 |
1 | VTGuard 检测代码检测到尝试使用非法虚拟函数表。 通常,C++ 对象已损坏,然后尝试使用损坏对象的 此指针进行虚拟方法调用。 |
2 | 堆栈 Cookie 检测代码检测到基于堆栈的缓冲区溢出 (/GS 冲突) 。 |
3 | LIST_ENTRY (损坏,例如双删除) 。 有关详细信息,请参阅以下原因部分。 |
4 | 保留 |
5 | 将无效参数传递给认为无效参数致命的函数。 |
6 | 加载程序未正确初始化堆栈 Cookie 安全 Cookie。 这可能是由于生成仅在 Windows 8 上运行的驱动程序,并尝试在早期版本的 Windows 上加载驱动程序映像。 若要避免此问题,必须生成要在早期版本的 Windows 上运行的驱动程序。 |
7 | 请求了致命程序退出。 |
8 | 编译器插入的数组边界检查检测到非法数组索引操作。 |
9 | 对 RtlQueryRegistryValues 的调用是在未RTL_QUERY_REGISTRY_TYPECHECK的情况下指定RTL_QUERY_REGISTRY_DIRECT,并且目标值不在受信任的系统配置单元中。 |
10 | 间接呼叫防护检查检测到无效的控制转移。 |
11 | 写入防护检查检测到无效的内存写入。 |
12 | 尝试切换到无效的纤程上下文。 |
13 | 尝试分配无效的寄存器上下文。 |
14 | 对象的引用计数无效。 |
18 | 尝试切换到无效jmp_buf上下文。 |
19 | 对只读数据进行了不安全的修改。 |
20 | 加密自测试失败。 |
21 | 检测到无效的异常链。 |
22 | 发生加密库错误。 |
23 | 从 DllMain 中进行的调用无效。 |
24 | 检测到无效的映像基址。 |
25 | 保护延迟加载导入时遇到不可恢复的故障。 |
26 | 调用了不安全的分机。 |
27 | 调用了已弃用的服务。 |
28 | 检测到超出边界的缓冲区访问。 |
29 | RTL_BALANCED_NODE RBTree 条目已损坏。 |
37 | 调用了范围外开关跳转表条目。 |
38 | 尝试对无效目标执行 longjmp 操作。 |
39 | 无法将导出抑制的调用目标设为有效的调用目标。 |
原因
使用参数 1 表和转储文件,可以缩小此类型许多 bug 检查的原因范围。
LIST_ENTRY损坏可能难以追踪,并且此 bug 检查,表示在向列表) 添加或删除单个列表条目元素时, (检测到双重链接列表中引入了不一致。 遗憾的是,在损坏发生时不一定能检测到不一致,因此可能需要一些侦探工作来确定根本原因。
列表条目损坏的常见原因包括:
驱动程序已损坏内核同步对象,例如 KEVENT (例如,当线程仍在等待同一 KEVENT 时对 KEVENT 进行双重初始化,或者允许基于堆栈的 KEVENT 超出范围,而另一个线程正在使用该 KEVENT) 。 这种类型的 bug 检查通常发生在 nt!Ke* or nt!Ki* 代码。 当线程完成等待同步对象或代码尝试将同步对象置于信号状态时,可能会发生这种情况。 通常,发出信号的同步对象是已损坏的同步对象。 有时,如果损坏的同步对象位于已) 释放的池块中,则具有特殊池的驱动程序验证程序可以帮助跟踪罪魁祸首 (。驱动程序损坏了定期 KTIMER。 这种类型的 bug 检查通常发生在 nt!Ke* 或 nt!Ki* 代码 和 涉及向计时器发出信号,或者从计时器表中插入或删除计时器。 正在操作的计时器可能是损坏的计时器,但可能需要使用 !timer(检查计时器表,或手动遍历计时器列表链接) 以确定哪个计时器已损坏。 有时,如果损坏的 KTIMER 位于) 已释放的池块中,则具有特殊池的驱动程序验证程序可以帮助跟踪罪魁祸首 (。驱动程序管理不了内部LIST_ENTRY样式的链接列表。 典型的示例是在同一列表条目上调用 RemoveEntryList两次,而不在两个 RemoveEntryList调用之间重新插入列表条目。 可能还有其他变体,例如将条目重复插入到同一列表中。驱动程序释放了包含LIST_ENTRY的数据结构,而不会从其相应的列表中删除数据结构,从而导致稍后在重新使用旧池块后检查列表时检测到损坏。驱动程序在没有正确同步的情况下以并发方式使用LIST_ENTRY样式的列表,导致列表更新撕裂。在大多数情况下,可以通过向前和向后移动链接列表来识别损坏的数据结构, (dl和 dlb命令可用于此目的) 和比较结果。 向前和向后走之间的列表不一致通常是损坏的位置。 由于链接列表更新操作可以修改相邻元素的列表链接,因此应仔细查看损坏列表条目的邻居,因为它们可能是潜在的罪魁祸首。
由于许多系统组件在内部利用LIST_ENTRY列表,因此驱动程序使用系统 API 管理的各种资源错误可能会导致系统管理的链接列表损坏。
解决方法
确定此问题的原因通常需要使用调试器来收集其他信息。 应检查多个转储文件,以查看此停止代码是否具有类似的特征,例如显示停止代码时正在运行的代码。
有关详细信息,请参阅 使用 Windows 调试器故障转储分析 (WinDbg) 、 使用 !analyze 扩展 和 !analyze。
使用事件日志查看是否存在导致此停止代码的更高级别事件。
这些常规故障排除提示可能会有所帮助。
如果最近向系统添加了硬件,请尝试删除或替换它。 或与制造商联系,查看是否有可用的修补程序。
如果最近添加了新的设备驱动程序或系统服务,请尝试删除或更新它们。 尝试确定系统中导致新 Bug 检查代码出现的原因。
检查事件查看器中的系统日志,以获取可能有助于查明导致错误的设备或驱动程序的其他错误消息。 有关详细信息,请参阅打开事件查看器。 在系统日志中查找与蓝屏同时出现的严重错误。
查看设备管理器,查看是否有任何设备标有感叹号 (!) 。 查看驱动程序属性中显示的事件日志,了解是否有任何故障驱动程序。 请尝试更新相关驱动程序。
运行病毒检测程序。 病毒可能会感染所有针对 Windows 格式化的硬盘类型,由此产生的磁盘损坏可能会检查代码生成系统 bug。 确保病毒检测程序检查主启动记录中的感染。
有关其他常规故障排除信息,请参阅 蓝屏数据。
另请参阅
使用 Windows 调试器 (WinDbg) 进行故障转储分析
使用 WinDbg 分析内核模式转储文件