バグ チェック 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 無効カウントは、ドライバーが KeEnterCriticalRegionFsRtlEnterFileSystem を呼び出すか、ミューテックスを取得するたびにデクリメントされます。

APC 無効カウントは、ドライバーが KeLeaveCriticalRegionKeReleaseMutex または FsRtlExitFileSystem を呼び出すたびにインクリメントされます。

これらの呼び出しは常にペアにする必要があるため、スレッドが終了したときに APC 無効化カウントは 0 にする必要があります。 負の値は、ドライバーが再度有効にせずに APC 呼び出しを無効にしたことを示します。 正の値は、逆が True であることを示します。

このエラーが発生した場合は、コンピューターにインストールされているすべてのドライバー (特に通常とは異なるドライバーまたは標準以外のドライバー) を非常に疑う必要があります。

この現在の IRQL (パラメーター 3) は 0 にする必要があります。 そうでない場合は、ドライバーの取り消しルーチンは、昇格された IRQL で返すことによって、このバグ チェックを引き起こしている可能性があります。 この場合は、クラッシュ時に実行されていたもの (および終了していたもの) を注意深くメモし、クラッシュ時にインストールされているすべてのドライバーに注意してください。 この場合の原因は、通常、ドライバーの重大なバグです。

解決方法

!analyze デバッグ拡張機能は、バグ チェックに関する情報を表示し、根本原因の特定に役立ちます。