バグ チェック 0x96: INVALID_WORK_QUEUE_ITEM

INVALID_WORK_QUEUE_ITEMバグ チェックには、0x00000096の値があります。 このバグチェックは、 NULL ポインターを含むキュー エントリが削除されたことを示しています。

重要

この記事は、プログラマー向けです。 コンピューターを使用中に、ブルー スクリーン エラーが表示された場合は、「ブルー スクリーン エラーのトラブルシューティング」を参照してください。

INVALID_WORK_QUEUE_ITEM パラメーター

パラメーター 説明

1

flink フィールドまたは blink フィールドが NULL のキュー エントリのアドレス。

2

参照されているキューのアドレス。 通常、このキューは ExWorkerQueueです。

3

ExWorkerQueue 配列のベース アドレス。 (このアドレスは、問題のキューが実際に ExWorkerQueue。キューが ExWorkerQueue の場合、このパラメーターからのオフセットによってキューが分離されます)。

4

キューが ExWorkerQueue であると仮定すると、この値は、作業項目が有効であった場合に呼び出されたワーカー ルーチンのアドレスです。 (このアドレスを使用して、作業キューを誤って使用しているドライバーを分離できます)。

原因

INVALID_WORK_QUEUE_ITEM バグ チェックは、 KeRemoveQueue がflink または blink フィールドが NULLのキュー エントリを削除する場合に発生します。

キューを誤用すると、このエラーが発生する可能性があります。 ただし、通常、このエラーは、ワーカー スレッドの作業項目が誤用されているために発生します。

キューのエントリは、一覧に 1 回だけ挿入できます。 項目がキューから削除されると、その flink フィールドは NULLに設定されます。 次に、この項目が 2 回目に削除されると、このバグチェックが発生します。

ほとんどの場合、参照されているキューは ExWorkerQueue (エグゼクティブ ワーカー キュー) です。 エラーの原因となったドライバーを識別するために、パラメーター 4 には、この作業項目が有効であった場合に呼び出されたワーカー ルーチンのアドレスが表示されます。 ただし、参照されているキューが ExWorkerQueueでない場合、このパラメーターは役に立ちません。