问题原因:
第三方软件冲突
硬件故障(通常是RAM或SSD)
KERNEL_SECURITY_CHECK_FAILURE bug 检查 的值为 0x00000139。此 bug 检查 指示内核已检测到关键数据结构的损坏。
使用参数 1 表和转储文件,可以缩小此类型许多 bug 检查的原因范围。
LIST_ENTRY损坏可能难以追踪,并且此 bug 检查,表示在向列表) 添加或从列表中删除单个列表条目元素时, (检测到双链接列表中引入了不一致。遗憾的是,在损坏发生时不一定检测到不一致,因此可能需要一些侦探工作来确定根本原因。
列表项损坏的常见原因包括:
驱动程序损坏了内核同步对象,例如 KEVENT (例如,当线程仍在等待同一 KEVENT 时对 KEVENT 进行双重初始化,或者允许基于堆栈的 KEVENT 超出范围,而另一个线程使用该 KEVENT) 。这种类型的 bug 检查通常发生在 nt!Ke* 或 nt!Ki* 代码。当线程完成等待同步对象或代码尝试将同步对象置于信号状态时,可能会发生这种情况。通常,发出信号的同步对象是已损坏的同步对象。有时,如果损坏的同步对象位于) 已释放的池块中,则具有特殊池的驱动程序验证程序可以帮助跟踪罪魁祸首 (。
驱动程序损坏了定期 KTIMER。这种类型的 bug 检查通常发生在 nt!Ke* or nt!Ki* 代码 和 涉及向计时器发出信号,或者从计时器表中插入或删除计时器。正在操作的计时器可能是损坏的计时器,但可能需要使用 !timer (检查计时器表,或手动遍历计时器列表链接) 以确定哪个计时器已损坏。有时,如果损坏的 KTIMER 位于已) 释放的池块中,则具有特殊池的驱动程序验证程序可以帮助跟踪罪魁祸首 (。
驱动程序管理了内部LIST_ENTRY样式的链接列表。典型的示例是,在同一列表条目上调用 RemoveEntryList 两次,而不在两个 RemoveEntryList 调用之间重新插入列表条目。还可以进行其他变体,例如将条目双重插入到同一列表中。
驱动程序释放了包含LIST_ENTRY的数据结构,但未从其相应的列表中删除数据结构,从而导致稍后在重用旧池块后检查列表时检测到损坏。
驱动程序以并发方式使用LIST_ENTRY样式的列表,但未正确同步,导致列表更新不正常。
在大多数情况下,可以通过向前和向后遍历链接列表来识别损坏的数据结构, (dl 和 dlb 命令可用于此目的) 和比较结果。如果列表在向前和向后行走之间不一致,通常是损坏的位置。由于链接列表更新操作可以修改相邻元素的列表链接,因此应仔细查看损坏列表条目的相邻项,因为它们可能是潜在的罪魁祸首。
由于许多系统组件在内部利用LIST_ENTRY列表,因此使用系统 API 的驱动程序进行各种类型的资源管理不当可能会导致系统管理的链接列表损坏。
解决方案:
常规故障排除提示可能会有所帮助。
如果最近向系统添加了硬件,请尝试删除或替换它。或与制造商联系,查看是否有可用的修补程序。
如果最近添加了新的设备驱动程序或系统服务,请尝试删除或更新它们。尝试确定系统中导致新 Bug 检查代码出现的原因。
检查事件查看器中的系统日志,以获取可能有助于查明导致错误的设备或驱动程序的其他错误消息。有关详细信息,请参阅打开事件查看器。在系统日志中查找与蓝屏同时出现的严重错误。
查看设备管理器,查看是否有任何设备标有感叹号 (!) 。查看驱动程序属性中显示的事件日志,了解是否有任何故障驱动程序。请尝试更新相关驱动程序。
运行病毒检测程序。病毒可能会感染为 Windows 格式化的所有类型的硬盘,由此产生的磁盘损坏可能会生成系统 bug 检查代码。确保病毒检测程序检查主启动记录是否存在感染。
Windows 10 KERNEL_SECURITY_CHECK_FAILURE停止代码的解决方案
方法 1. 将 Windows 10 更新到最新版本
方法 2. 更新驱动程序
方法3.检查磁盘错误
方法 4. 检查内存问题
方法 5. 运行系统文件检查器和“chkdsk”命令
方法 6. 使用蓝屏疑难解答
方法 7. 暂时禁用防病毒软件