バグ チェック 0x20: KERNEL_APC_PENDING_DURING_EXIT
KERNEL_APC_PENDING_DURING_EXIT バグチェックには、0x00000020 の値があります。 これは、スレッドが終了したときに、非同期プロシージャ 呼び出し (APC) がまだ保留中であることを示します。
重要
この記事は、プログラマー向けです。 コンピューターを使用中に、ブルー スクリーン エラーが表示された場合は、「ブルー スクリーン エラーのトラブルシューティング」を参照してください。
KERNEL_APC_PENDING_DURING_EXIT パラメーター
パラメーター | 説明 |
---|---|
1 |
終了時に保留中の APC のアドレス |
2 |
スレッドの APC 無効化数 |
3 |
現在の IRQL |
4 |
予約されています。 |
原因
キー データ項目は、スレッドの APC 無効化カウント (パラメーター 2) です。 カウントが 0 以外の場合は、問題の原因を示します。
APC 無効カウントは、ドライバーが KeEnterCriticalRegion、FsRtlEnterFileSystem を呼び出すか、ミューテックスを取得するたびにデクリメントされます。
APC 無効カウントは、ドライバーが KeLeaveCriticalRegion、KeReleaseMutex または FsRtlExitFileSystem を呼び出すたびにインクリメントされます。
これらの呼び出しは常にペアにする必要があるため、スレッドが終了したときに APC 無効化カウントは 0 にする必要があります。 負の値は、ドライバーが再度有効にせずに APC 呼び出しを無効にしたことを示します。 正の値は、逆が True であることを示します。
このエラーが発生した場合は、コンピューターにインストールされているすべてのドライバー (特に通常とは異なるドライバーまたは標準以外のドライバー) を非常に疑う必要があります。
この現在の IRQL (パラメーター 3) は 0 にする必要があります。 そうでない場合は、ドライバーの取り消しルーチンは、昇格された IRQL で返すことによって、このバグ チェックを引き起こしている可能性があります。 この場合は、クラッシュ時に実行されていたもの (および終了していたもの) を注意深くメモし、クラッシュ時にインストールされているすべてのドライバーに注意してください。 この場合の原因は、通常、ドライバーの重大なバグです。
解決方法
!analyze デバッグ拡張機能は、バグ チェックに関する情報を表示し、根本原因の特定に役立ちます。