問(wèn)題原因:
第三方軟件沖突
硬件故障(通常是RAM或SSD)
KERNEL_SECURITY_CHECK_FAILURE bug 檢查 的值為 0x00000139。此 bug 檢查 指示內(nèi)核已檢測(cè)到關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的損壞。
使用參數(shù) 1 表和轉(zhuǎn)儲(chǔ)文件,可以縮小此類(lèi)型許多 bug 檢查的原因范圍。
LIST_ENTRY損壞可能難以追蹤,并且此 bug 檢查,表示在向列表) 添加或從列表中刪除單個(gè)列表?xiàng)l目元素時(shí), (檢測(cè)到雙鏈接列表中引入了不一致。遺憾的是,在損壞發(fā)生時(shí)不一定檢測(cè)到不一致,因此可能需要一些偵探工作來(lái)確定根本原因。
列表項(xiàng)損壞的常見(jiàn)原因包括:
驅(qū)動(dòng)程序損壞了內(nèi)核同步對(duì)象,例如 KEVENT (例如,當(dāng)線程仍在等待同一 KEVENT 時(shí)對(duì) KEVENT 進(jìn)行雙重初始化,或者允許基于堆棧的 KEVENT 超出范圍,而另一個(gè)線程使用該 KEVENT) 。這種類(lèi)型的 bug 檢查通常發(fā)生在 nt!Ke* 或 nt!Ki* 代碼。當(dāng)線程完成等待同步對(duì)象或代碼嘗試將同步對(duì)象置于信號(hào)狀態(tài)時(shí),可能會(huì)發(fā)生這種情況。通常,發(fā)出信號(hào)的同步對(duì)象是已損壞的同步對(duì)象。有時(shí),如果損壞的同步對(duì)象位于) 已釋放的池塊中,則具有特殊池的驅(qū)動(dòng)程序驗(yàn)證程序可以幫助跟蹤罪魁禍?zhǔn)?(。
驅(qū)動(dòng)程序損壞了定期 KTIMER。這種類(lèi)型的 bug 檢查通常發(fā)生在 nt!Ke* or nt!Ki* 代碼 和 涉及向計(jì)時(shí)器發(fā)出信號(hào),或者從計(jì)時(shí)器表中插入或刪除計(jì)時(shí)器。正在操作的計(jì)時(shí)器可能是損壞的計(jì)時(shí)器,但可能需要使用 !timer (檢查計(jì)時(shí)器表,或手動(dòng)遍歷計(jì)時(shí)器列表鏈接) 以確定哪個(gè)計(jì)時(shí)器已損壞。有時(shí),如果損壞的 KTIMER 位于已) 釋放的池塊中,則具有特殊池的驅(qū)動(dòng)程序驗(yàn)證程序可以幫助跟蹤罪魁禍?zhǔn)?(。
驅(qū)動(dòng)程序管理了內(nèi)部LIST_ENTRY樣式的鏈接列表。典型的示例是,在同一列表?xiàng)l目上調(diào)用 RemoveEntryList 兩次,而不在兩個(gè) RemoveEntryList 調(diào)用之間重新插入列表?xiàng)l目。還可以進(jìn)行其他變體,例如將條目雙重插入到同一列表中。
驅(qū)動(dòng)程序釋放了包含LIST_ENTRY的數(shù)據(jù)結(jié)構(gòu),但未從其相應(yīng)的列表中刪除數(shù)據(jù)結(jié)構(gòu),從而導(dǎo)致稍后在重用舊池塊后檢查列表時(shí)檢測(cè)到損壞。
驅(qū)動(dòng)程序以并發(fā)方式使用LIST_ENTRY樣式的列表,但未正確同步,導(dǎo)致列表更新不正常。
在大多數(shù)情況下,可以通過(guò)向前和向后遍歷鏈接列表來(lái)識(shí)別損壞的數(shù)據(jù)結(jié)構(gòu), (dl 和 dlb 命令可用于此目的) 和比較結(jié)果。如果列表在向前和向后行走之間不一致,通常是損壞的位置。由于鏈接列表更新操作可以修改相鄰元素的列表鏈接,因此應(yīng)仔細(xì)查看損壞列表?xiàng)l目的相鄰項(xiàng),因?yàn)樗鼈兛赡苁菨撛诘淖锟準(zhǔn)住?/span>
由于許多系統(tǒng)組件在內(nèi)部利用LIST_ENTRY列表,因此使用系統(tǒng) API 的驅(qū)動(dòng)程序進(jìn)行各種類(lèi)型的資源管理不當(dāng)可能會(huì)導(dǎo)致系統(tǒng)管理的鏈接列表?yè)p壞。
解決方案:
常規(guī)故障排除提示可能會(huì)有所幫助。
如果最近向系統(tǒng)添加了硬件,請(qǐng)嘗試刪除或替換它;蚺c制造商聯(lián)系,查看是否有可用的修補(bǔ)程序。
如果最近添加了新的設(shè)備驅(qū)動(dòng)程序或系統(tǒng)服務(wù),請(qǐng)嘗試刪除或更新它們。嘗試確定系統(tǒng)中導(dǎo)致新 Bug 檢查代碼出現(xiàn)的原因。
檢查事件查看器中的系統(tǒng)日志,以獲取可能有助于查明導(dǎo)致錯(cuò)誤的設(shè)備或驅(qū)動(dòng)程序的其他錯(cuò)誤消息。有關(guān)詳細(xì)信息,請(qǐng)參閱打開(kāi)事件查看器。在系統(tǒng)日志中查找與藍(lán)屏同時(shí)出現(xiàn)的嚴(yán)重錯(cuò)誤。
查看設(shè)備管理器,查看是否有任何設(shè)備標(biāo)有感嘆號(hào) (!) 。查看驅(qū)動(dòng)程序?qū)傩灾酗@示的事件日志,了解是否有任何故障驅(qū)動(dòng)程序。請(qǐng)嘗試更新相關(guān)驅(qū)動(dòng)程序。
運(yùn)行病毒檢測(cè)程序。病毒可能會(huì)感染為 Windows 格式化的所有類(lèi)型的硬盤(pán),由此產(chǎn)生的磁盤(pán)損壞可能會(huì)生成系統(tǒng) bug 檢查代碼。確保病毒檢測(cè)程序檢查主啟動(dòng)記錄是否存在感染。
Windows 10 KERNEL_SECURITY_CHECK_FAILURE停止代碼的解決方案
方法 1. 將 Windows 10 更新到最新版本
方法 2. 更新驅(qū)動(dòng)程序
方法3.檢查磁盤(pán)錯(cuò)誤
方法 4. 檢查內(nèi)存問(wèn)題
方法 5. 運(yùn)行系統(tǒng)文件檢查器和“chkdsk”命令
方法 6. 使用藍(lán)屏疑難解答
方法 7. 暫時(shí)禁用防病毒軟件 |