錯誤檢查0x1:APC_INDEX_MISMATCH
APC_INDEX_MISMATCH錯誤檢查的 值為 0x00000001。 錯誤檢查表示非同步程序呼叫 (APC) 狀態索引不符。
重要
本文適用于程式設計人員。 如果您是 Microsoft 客戶,且您的電腦會顯示藍色畫面錯誤碼,請參閱 針對藍色畫面錯誤進行疑難排解。
APC_INDEX_MISMATCH參數
參數 | 描述 |
---|---|
1 | 系統函式 (系統呼叫) 或背景工作常式的位址。 |
2 | 目前線程 ApcStateIndex 欄位的值。 |
3 | 目前線程 的 CombinedApcDisable 欄位的值。 此欄位包含兩個不同的 16 位欄位: (Thread>SpecialApcDisable<< 16) |執行緒>KernelApcDisable。 |
4 | 呼叫類型: 0 - 系統呼叫 1 - 背景工作常式 |
原因
此錯誤檢查最常見的原因是檔案系統或驅動程式的呼叫順序不符,無法停用並重新啟用 ACS。 索引鍵資料項目是[執行緒>CombinedApcDisable]欄位。 CombinedApcDisable欄位包含兩個不同的 16 位欄位:SpecialApcDisable 和 KernelApcDisable。 任一欄位的負值表示驅動程式已分別停用特殊或一般 API () 而不重新啟用它們。 正值表示驅動程式已啟用特殊或一般 APC 太多次。
解決方案
您可以使用 WinDbg 或使用基本疑難排解技術來解決此問題。
使用 WinDbg 進行偵錯
!analyze偵錯工具延伸模組會顯示錯誤檢查的相關資訊,並協助您判斷根本原因。
您可以使用 !apc 延伸模組來顯示一或多個 APC 的內容。
您也可以在此停止程式碼之前的程式碼中設定中斷點,並嘗試向前單一步驟進入錯誤程式碼。
如需使用 WinDbg 的詳細資訊,請參閱 使用 Windows 偵錯工具 (WinDbg) 損毀傾印分析 。
不使用 WinDbg 進行偵錯
如果您未配備使用 Windows 偵錯工具來處理此問題:
在事件檢視器中,檢查系統記錄檔中是否有更多錯誤訊息,可協助您識別造成此錯誤檢查的裝置或驅動程式。
如果在錯誤檢查訊息中找出某個驅動程式,請停用驅動程式或洽詢製造商是否有驅動程式更新。
確認已安裝的任何新硬體都與已安裝的 Windows 版本相容。 例如,您可以在Windows 10規格取得必要硬體的相關資訊。
如需更一般的疑難排解資訊,請參閱 藍色畫面資料。
備註
這個錯誤檢查是核心內部錯誤的結果。 從系統通話結束時,就會發生此錯誤。 這個錯誤檢查的可能原因是檔案系統或驅動程式有不相符的系統呼叫順序,以進入或離開受防護或重要區域。 例如,每個 對 KeEnterCriticalRegion 的呼叫都必須有 與 KeLeaveCriticalRegion的相符呼叫。
如果您要開發驅動程式,您可以使用 靜態驅動程式驗證器,這是 Windows 驅動程式套件中提供的靜態分析工具,可在寄送驅動程式之前偵測程式碼中的問題。 使用 CriticalRegions 規則執行靜態驅動程式驗證程式,以確認您的原始程式碼會以正確的順序使用這些系統呼叫。