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