Share via


バグ チェック 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION

DRIVER_VERIFIER_IOMANAGER_VIOLATION バグ チェックには、0x000000C9 の値があります。 これは、すべてのドライバー検証ツールの I/O 検証違反の バグ チェック コードです。

重要

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

DRIVER_VERIFIER_IOMANAGER_VIOLATION パラメーター

ドライバー検証ツールがアクティブで 、I/O 検証 が選択されている場合、さまざまな I/O 違反により、このバグチェックが発行されます。 パラメーター 1 は違反の種類を特定します。

パラメーター 1 パラメータ 2 パラメーター 3 パラメーター 4 エラーの原因

0x01

解放される IRP のアドレス

0

0

ドライバーは、 IO_TYPE_IRP でない型のオブジェクトを解放しようとしました。

0x02

解放される IRP のアドレス

0

0

ドライバーは、スレッドに関連付けられている IRP を解放しようとしました。

0x03

送信される IRP のアドレス

0

0

ドライバーは、IRP_TYPEと等しくない IRP の種類の IoCallDriver を渡しました

0x04

デバイス オブジェクトのアドレス

0

0

ドライバーが無効なデバイス オブジェクトを IoCallDriver に渡しました

0x05

問題のあるドライバーに関連付けられているデバイス オブジェクトのアドレス

IoCallDriver の前の IRQL

IoCallDriver の後 の IRQL

IRQL は、ドライバーディスパッチ ルーチンの呼び出し中に変更されました。

0x06

IRP のステータス

完了中の IRP のアドレス

0

状態が保留中 (または -1) とマークされている IoCompleteRequest という ドライバー。

0x07

キャンセル ルーチンのアドレス

完了中の IRP のアドレス

0

取り消しルーチンがまだ設定されている間に IoCompleteRequest という ドライバー。

0x08

デバイス オブジェクトのアドレス

IRP 主要機能コード

例外の状態コード

ドライバーは、無効なバッファーを IoBuildAsynchronousFsdRequest に渡しました

0x09

デバイス オブジェクトのアドレス

I/O 制御コード

例外の状態コード

ドライバーは、無効なバッファーを IoBuildDeviceIoControlRequest に渡しました

0煮10

現在の IRQL

予約済み

予約済み

IoCallDriver は、上記の DISPATCH_LEVEL で呼び出されました。

0x11

ドライバーの高速 I/O ディスパッチ ルーチン アドレス

ドライバー ディスパッチ ルーチンを呼び出す前の IRQL

現在の IRQL

IoCallDriver は、上記の DISPATCH_LEVEL で呼び出されました。

0x12

ドライバーディスパッチルーチンアドレス

ドライバー ディスパッチ ルーチンを呼び出す前の IRQL

現在の IRQL

IoCallDriver は、上記の DISPATCH_LEVEL で呼び出されました。

0x0A

デバイス オブジェクトのアドレス

0

0

ドライバーは、既に初期化されたタイマーを持つデバイス オブジェクトに IoInitializeTimer を渡しました

0x0C

I/O 状態ブロックのアドレス

0

0

ドライバーは I/O 状態ブロックを IRP に渡しましたが、このブロックは、その時点よりも既に巻き戻されたスタックに割り当てられます。

0x0D

ユーザー イベント オブジェクトのアドレス

0

0

ドライバーは IRP にユーザー イベントを渡しましたが、このイベントは、その時点よりも既に巻き戻されたスタックに割り当てられます。

0x0E

現在の IRQL

IRP のアドレス

0

IRQL > DISPATCH_LEVELを使用した IoCompleteRequest という ドライバー。

0x0F

IRP が送信されるデバイス オブジェクトのアドレス

IRP へのポインター

ファイル オブジェクトを指すポインター

ドライバーは、閉じられたファイル オブジェクト、またはオープンがキャンセルされたファイル オブジェクトを含む作成要求を送信しました。

前の表にメンションエラーに加えて、多数の I/O 検証 エラーが発生し、ドライバー検証ツールによってシステムが停止されますが、実際にはバグ チェックではありません。

これらのエラーにより、メッセージがブルー スクリーン、クラッシュ ダンプ ファイル、カーネル デバッガーに表示されます。 これらのメッセージは、これらの場所ごとに異なる方法で表示されます。 これらのエラーが発生すると、16 進数のバグチェックコード 0xC9 とバグチェック文字列 DRIVER_VERIFIER_IOMANAGER_VIOLATION は、クラッシュ ダンプ ファイルに表示されますが、ブルー スクリーンやデバッガーには表示されません。

ブルー スクリーンに、次のデータが表示されます。

  • メッセージ IO システム検証エラー

  • メッセージ WDM DRIVER ERRORXXX。XXXは特定 のエラーを表す 16 進コードです。 (I/O エラー コードとその意味の一覧については、次の表を参照してください)。

  • エラーの原因となったドライバーの名前。

  • 通常、エラーが検出されたドライバーのコード内のアドレス(パラメータ2)。

カーネル モードのクラッシュ ダンプが有効になっている場合は、クラッシュ ダンプ ファイルに次の情報が表示されます。

  • メッセージ BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION)

  • 16 進数の I/O エラー コード。 (I/O エラー コードとその意味の一覧については、次の表を参照してください)。

  • 通常、エラーが検出されたドライバーのコード内のアドレス(パラメータ2)。

この違反の原因となったシステムにカーネル デバッガーがアタッチされている場合、次の情報がデバッガーに送信されます。

  • メッセージ WDM DRIVER ERROR と、エラーの重大度の評価。

  • エラーの原因となったドライバーの名前。

  • このエラーの原因を説明する説明文字列。 多くの場合、IRP へのポインターや、デバイス オブジェクトへのポインター、または IRQL 情報など、追加情報が渡されます。 (これらの説明文字列の一覧と、指定されている追加情報については、次の表を参照してください)。

  • その他のアクションのクエリ。 可能な応答は 、b (break)、 i (ignore)、 z (zap)、 r (remove)、あるいは、 d (disable) です。 オペレーティング システムに続行するように指示すると、このエラーが発生しなかった場合に何が 「この先」何が起こるかを確認できます。 もちろん、これは多くの場合、追加のバグチェックにつながります。 "zap" オプションは、このエラーが検出される原因となったブレークポイントを実際に削除します。

注: この方法では、他のバグ チェックは無視できません。 無視できるのは、この種の I/O 検証 エラーだけであり、これらのエラーさえも、カーネル デバッガーがアタッチされている場合にのみ無視できます。

次の表に、表示 される可能性がある I/O 検証 エラーの一覧を示します。

I/O エラー コード 重要度 エラーの原因

0x200

Unknown

このコードでは、不明 なすべての I/O 検証エラーについて説明 します。

0x201

致命的なエラー

デバイスは、ドライバー スタック内のその下に別のデバイスがある間、自身を削除しています。 これは、呼び出し元が最初に IoDetachDevice を呼び出 すのを忘れたか、下位のドライバーが誤って自身を削除した可能性があるためです。

Param 2 - エラーが検出されたドライバーコードのアドレス。

0x202

致命的なエラー

ドライバーが、何にも接続されていないデバイス オブジェクトからデタッチしようとしました。 これは、デタッチが同じデバイス オブジェクトで 2 回呼び出された場合に発生する可能性があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - デバイス オブジェクトのアドレス。

0x203

致命的なエラー

ドライバーは、IRP のキャンセル ルーチンを NULL に設定せずに IoCallDriver呼び出しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x204

致命的なエラー

呼び出し元は、デバイス オブジェクトとして NULL を 渡しました 。 これは致命的です。

Param 2 - 予約済み

Param 3 - 予約済み

0x205

致命的なエラー

呼び出し元は、その下に現在キューに登録されている IRP を転送しています。 このドライバーで STATUS_PENDING を返す IRP を処理するコードが壊れているように見えます。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x206

致命的なエラー

呼び出し元が IRP を誤って転送しました (コントロール フィールドが 0 ではない)。 ドライバーでは、IoCopyCurrentIrpStackLocationToNext または IoSkipCurrentIrpStackLocation を使用する必要があります。

Param 2 - 予約済み

Param 3 - 予約済み

0x207

致命的なエラー

呼び出し元がスタックを手動でコピーし、上位レイヤの完了ルーチンを誤ってコピーしました。 ドライバーでは、IoCopyCurrentIrpStackLocationToNext を使用する必要があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x208

致命的なエラー

この IRP はスタックの場所を使い果たします。 誰かが別のスタックからこの IRP を転送した可能性があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x209

致命的なエラー

呼び出し元は、その下に現在キューに登録されている IRP を完了しようとしています。 このドライバーで STATUS_PENDING を返す IRP を処理するコードが壊れているように見えます。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x20A

致命的なエラー

IoFreeIrp 呼び出し元は、まだ使用中の IRP を解放しています。

Param 2 - 予約済み

Param 3 - 予約済み

0x20B

致命的なエラー

IoFreeIrp 呼び出し元は、まだ使用中の IRP を解放しています。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x20C

致命的なエラー

IoFreeIrp 呼び出し元は、スレッドに対してまだキューに入っている IRP を解放しています。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x20D

致命的なエラー

IoInitializeIrp 呼び出し元が、IoAllocateIrp 割り当てられた IRP を渡しました。 これは違法で不要であり、クォータ リークの原因となっています。 この IRP がリサイクルされる場合は、IoReuseIrp のドキュメント を確認してください。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x20E

Non-fatal error

PNP IRP の状態が無効です。 (どのPNP IRP も、その状態は、STATUS_NOT_SUPPORTEDに初期化されている必要があります)。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x20F

Non-fatal error

Power IRP の状態が無効です。 (どの Power IRP も、その状態は、STATUS_NOT_SUPPORTED に初期化されている必要があります)。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x210

Non-fatal error

WMI IRP の状態が無効です。 (どの WMI IRP も、その状態は、STATUS_NOT_SUPPORTED に初期化されている必要があります)。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x211

Non-fatal error

呼び出し元は、スタック内のデバイス オブジェクトをスキップ中に IRP を転送しました。 呼び出し元は、IoAttachDeviceToDeviceStack によって 返されるデバイスではなく、PDO に IRP を送信している可能性があります

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x212

Non-fatal error

呼び出し元がごみ箱に入っているか、IRP のスタックを正しくコピーしていません。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x213

Non-fatal error

呼び出し元は、認識できない IRP の状態フィールドを変更しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x214

Non-fatal error

呼び出し元は、認識できない IRP の情報フィールドを変更しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x215

Non-fatal error

IRP_MJ_PNPの成功していない非STATUS_NOT_SUPPORTED IRP 状態がスタックに渡されています。 失敗した PNP IRP を完了する必要があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x216

Non-fatal error

以前に設定したIRP_MJ_PNP状態がSTATUS_NOT_SUPPORTEDに変換されました。 このエラー状態は、オペレーティング システムで使用するために予約されています。 ドライバーは、この値を持つ PnP IRP を失敗できません。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x217

Non-fatal error

ドライバーは、必要な IRP を処理していません。 ドライバーは、処理されているかどうかを示す IRP の状態を更新する必要があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x218

Non-fatal error

ドライバーは、スタック内の他の場所の他のデバイス オブジェクト用に予約されている IRP に応答しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x219

Non-fatal error

IRP_MJ_POWER の成功していない非STATUS_NOT_SUPPORTED IRP 状態がスタックに渡されています。 失敗した POWER IRP を完了する必要があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x21A

Non-fatal error

以前に設定した IRP_MJ_POWER の状態が STATUS_NOT_SUPPORTED に変換されました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x21B

Non-fatal error

ドライバーが疑わしい状態を返しました。 これは、ドライバーの初期化されていない変数のバグが原因である可能性があります。

Param 3 - IRP アドレス。

0x21C

警告

呼び出し元は IRP スタックをコピーしましたが、完了ルーチンを設定していません。 これは非効率的です。代わりに IoSkipCurrentIrpStackLocation を使用 してください。

Param 2 - 予約済み

Param 3 - 予約済み

0x21D

致命的なエラー

IRP ディスパッチ ハンドラーは、削除 IRP を受け取ると、その下のスタックから正しくデタッチされていません。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - デバイス オブジェクトのアドレス。

0x21E

致命的なエラー

IRP ディスパッチ ハンドラーは、削除 IRP を受信したときに、そのデバイス オブジェクトを適切に削除していません。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - デバイス オブジェクトのアドレス。

0x21F

Non-fatal error

ドライバーが必要な IRP メジャー関数のディスパッチ ルーチンを入力していません。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x220

Non-fatal error

ProviderId 以外のユーザーによって IRP_MJ_SYSTEM_CONTROL が完了しました。 この IRP は、以前に完了しているか、渡されている必要があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - ProviderId。

0x221

致命的なエラー

PDO の IRP ディスパッチ ハンドラーは、そのデバイス オブジェクトを削除しましたが、ハードウェアがバス関係クエリで不足していると報告されていません。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - デバイス オブジェクトのアドレス。

0x222

致命的なエラー

バス フィルターの IRP ディスパッチ ハンドラーは、PDO がまだ生きているときに削除 IRP を受信するとデタッチされました。 バス フィルターは、FastIoDetach コールバックで クリーンする必要があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - デバイス オブジェクトのアドレス。

0x223

致命的なエラー

バス フィルターの IRP ディスパッチ ハンドラーは、そのデバイス オブジェクトを削除しましたが、PDO はまだ存在します。 バス フィルターは、FastIoDetach コールバックで クリーンする必要があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - デバイス オブジェクトのアドレス。

0x224

致命的なエラー

IRP ディスパッチ ハンドラーが、IRP の IoStatus.Status フィールドと矛盾する状態 を返しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - 予期される状態コード。

0x225

Non-fatal error

IRP ディスパッチ ハンドラーが無効な状態 (0xFFFFFFFF) を返しました。 これはおそらく、スタック変数が初期化されていないことが原因だと思われます。 このエラーをデバッグするには、指定したアドレスで ln (最も近いシンボルのリスト) コマンドを使用します。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - 状態コード。

0x226

致命的なエラー

IRP ディスパッチ ハンドラーが、この IRP を受け渡したり完了したりせずに返された場合、または誰かが STATUS_PENDING を返すのを忘れた場合。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x227

致命的なエラー

IRP 完了ルーチンはページング可能なコード内にあります。 (これは許可されません)。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x228

Non-fatal error

PendingReturned フィールドが IRP に渡された 場合、ドライバーの 完了ルーチンが IRP の保留中をマークしていません。 これにより、特にスタックからエラーが返された場合に、Windows がハングする可能性があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x229

致命的なエラー

スタックの下位にあるドライバー処理中の IRP にキャンセルルーチンが設定され、キャンセルルーチンを停止させている可能性があります。

Param 2 - 予約済み。

Param 3 - 予約済み。

0x22A

Non-fatal error

物理デバイス オブジェクト (PDO) が、必要な IRP に応答していません。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x22B

Non-fatal error

物理デバイス オブジェクト (PDO) は、TargetDeviceRelation クエリの PDO でデバイス関係リストに入力することを忘れました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x22C

致命的なエラー

TargetDeviceRelation クエリを 実装するコードは、PDO で ObReferenceObject を呼び出 していません。

Param 2 - 予約済み。

Param 3 - 予約済み。

0x22D

Non-fatal error

呼び出し元は、IRP_MJ_PNP を受け渡す代わりに、理解できなかったIRP_MJ_PNPを完了しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x22E

Non-fatal error

呼び出し元は、渡すのではなく、正常なIRP_MJ_PNPを完了しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x22F

Non-fatal error

呼び出し元が (IRP を渡す代わりに) 手つかずのIRP_MJ_PNPを完了したか、PDO 以外のSTATUS_NOT_SUPPORTEDの無効な値を使用して IRP に失敗しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x230

Non-fatal error

呼び出し元は、IRP_MJ_POWERを受け渡す代わりに、理解できなかったIRP_MJ_POWERを完了しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x231

致命的なエラー

呼び出し元は、渡すのではなく、正常な IRP_MJ_POWER を完了しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x232

Non-fatal error

呼び出し元が (IRP を渡す代わりに) 手つかずの IRP_MJ_POWER を完了したか、PDO 以外の STATUS_NOT_SUPPORTED の無効な値を使用して IRP に失敗しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x233

Non-fatal error

クエリ機能 IRP のクエリ機能構造のバージョン フィールドが正しく初期化されませんでした。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x234

Non-fatal error

クエリ機能 IRP のクエリ機能構造のサイズ フィールドが正しく初期化されませんでした。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x235

Non-fatal error

クエリ機能 IRP のクエリ機能構造のアドレス フィールドが -1 に正しく初期化されませんでした。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x236

Non-fatal error

クエリ機能 IRP のクエリ機能構造の UI 番号 フィールドが -1 に正しく初期化されませんでした。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x237

致命的なエラー

ドライバーは、システムの使用のみに制限されている IRP を送信しました。

Param 2 - 予約済み。

Param 3 - 予約済み。

0x238

警告

IoInitializeIrp 呼び出し元が、IoAllocateIrp 割り当てられた IRP を渡しました。 これは違法であり、不要であり、通常の使用でパフォーマンスに悪影響を与えます。 この IRP がリサイクルされている場合は、Windows ドライバー キットの IoReuseIrp を参照してください

Param 2 - 予約済み。

Param 3 - 予約済み。

0x239

警告

IoCompleteRequest の 呼び出し元は、IoCallDriver または PoCallDriver への 呼び出しによって転送されたことがない IRP を完了しています 。 これはバグである可能性があります。

Param 2 - 予約済み。

Param 3 - 予約済み。

0x23A

致命的なエラー

ドライバーは、この主要なコードに対して無効な IRQL で IRP を転送しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x23B

Non-fatal error

呼び出し元は、認識できない IRP の状態フィールドを変更しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

次の表に、表示 される可能性がある 追加 I/O 検証 エラーの一覧を示します。 これらのエラーは、拡張 I/O 検証 がアクティブになると表示されます 。 詳細については、「拡張I/O検証」を参照してください

I/O エラー コード 重要度 エラーの原因

0x23C

致命的なエラー

ドライバーは、IRP のキャンセル ルーチンを NULL に設定せずに IRP を完了しました。

Param 2 - 予約済み。

Param 3 - 予約済み。

0x23D

Non-fatal error

ドライバーはSTATUS_PENDING返されましたが、IoMarkIrpPending 呼び出しによって IRP が保留中のマークを付けませんでした。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - 状態コード。

0x23E

Non-fatal error

ドライバーが保留中の IRP をマークしたが、STATUS_PENDING を返しませんでした。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - 状態コード。

0x23F

致命的なエラー

ドライバーは、アタッチされているスタックから DO_POWER_PAGABLE ビットを継承していません。

Param 2 - 予約済み。

Param 3 - 予約済み。

0x240

致命的なエラー

ドライバーは、IoDeleteDevice への以前の呼び出しによって既に削除されているデバイス オブジェクトを削除しようとしています。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 2 - 予約済み。

Param 3 - 予約済み。

0x241

致命的なエラー

突然の削除 IRP 中に、ドライバーは、そのデバイス オブジェクトをデタッチしました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - デバイス オブジェクトのアドレス。

0x242

致命的なエラー

突然の削除 IRP 中に、ドライバーは、そのデバイス オブジェクトを消去しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - デバイス オブジェクトのアドレス。

0x243

致命的なエラー

ドライバーが AddDevice の末尾でDO_DEVICE_INITIALIZING フラグをクリアできませんでした。

Param 2 - 予約済み。

Param 3 - 予約済み。

Param 4 -

0x244

致命的なエラー

ドライバーは、接続しているデバイス オブジェクトから DO_BUFFERED_IO または DO_DIRECT_IO フラグをコピーしていません。

Param 2 - 予約済み。

Param 3 - 予約済み。

0x245

致命的なエラー

ドライバーは、DO_BUFFERED_IO と DO_DIRECT_IO フラグの両方を設定しています。 これらのフラグを同時に指定することはできません。

Param 2 - 予約済み。

Param 3 - 予約済み。

0x246

致命的なエラー

ドライバーが、アタッチ先の デバイス オブジェクトから DeviceType フィールドをコピーできませんでした。

Param 2 - 予約済み。

Param 3 - 予約済み。

0x247

致命的なエラー

Param 2 - 予約済み。

Param 3 - 予約済み。

ドライバーが、法的に失敗できない IRP に失敗しました。

0x248

致命的なエラー

ドライバーは、PDO ではないデバイス オブジェクトをデバイス関係クエリに追加しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - デバイス オブジェクトのアドレス。

0x249

Non-fatal error

ドライバーは、同じデバイス ID を返す 2 つの子 PDO を列挙しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

パラメーター 3 - 最初のデバイス オブジェクト アドレス。

Param 4 - 2 番目のデバイス オブジェクト アドレス。

0x24A

致命的なエラー

ドライバーが誤って IRQL が PASSIVE_LEVEL と等しくないファイル I/O 関数を呼び出しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - 予約済み。

Param 4 - 予約済み。

0x24B

致命的なエラー

ドライバーは、成功した場合に TargetDeviceRelation のIRP_MN_QUERY_DEVICE_RELATIONS要求を完了しましたが、要求を正しく入力しなかったか、基になるハードウェア スタックに IRP を転送しませんでした。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - デバイス オブジェクトのアドレス。

0x24C

Non-fatal error

ドライバーはSTATUS_PENDING返されましたが、IoMarkIrpPending 呼び出しによって IRP が保留中のマークを付けませんでした。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - 状態コード。

0x24D

致命的なエラー

ドライバーは、PDO を必要とする関数に無効なデバイス オブジェクトを渡しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - デバイス オブジェクトのアドレス。

0x300

Non-fatal error

ドライバーが疑わしい状態を返しました。 これは、ドライバーの初期化されていない変数のバグが原因である可能性があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

パラメーター 4 - 疑わしい状態コード。

0x301

Non-fatal error

ドライバーが IRQL > DISPATCH_LEVEL で IRP を転送しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - IRQL 値が正しくありません

0x302

Non-fatal error

ドライバーが IRQL > = APC_LEVEL で IRP を転送しました。

I/O マネージャーは、この要求を完了するために APC をキューに入れる必要があります。 呼び出し元が既に APC レベルであるため、APC を実行できないため、呼び出し元がデッドロックする可能性があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

Param 4 - IRQL 値が正しくありません。

0x306

Non-fatal error

ドライバーは、IRP_MJ_PNP (メジャー) とIRP_MN_REMOVE_DEVICE (マイナー) 要求を失敗状態コードで完了しています。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x307

Non-fatal error

ドライバーは、既に通知され、STATUS_PENDING 応答を受信したイベントを含む I/O 要求を発行しました。 これにより、I/O が完了する前にアンワインドが発生する可能性があります。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x310

Non-fatal error

ドライバーは、まだ使用中の IRP を再初期化しています。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x311

Non-fatal error

ドライバーは、IoMakeAssociatedIrp、IoBuildAsynchronousFsdRequest、IoBuildSynchronousFsdRequest、IoBuildDeviceIoControlRequest で作成された IRP を再初期化しています。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

0x312

Non-fatal error

呼び出し元は、システム バッファーの出力セクションより大きい値を IRP 状態情報フィールドを指定しました。

Param 2 - エラーが検出されたドライバーコードのアドレス。

Param 3 - IRP アドレス。

原因

原因については、「パラメーター」セクションの各コードの説明を参照してください。

解決方法

このバグ チェックは、ドライバー検証ツールが 1 つ以上のドライバーを監視するように指示されている場合にのみ発生します。 ドライバー検証ツールを使用しない場合は、非アクティブ化してください。 詳細については、「ドライバー検証ツール」の 「ドライバー検証ツールを制御する方法」を参照してください。 この問題の原因となったドライバーの更新あるいは削除も検討してみてください。

あなたがドライバーの作成者である場合は、このバグ チェックで取得した情報を使用して、コード内のバグを修正してください。

ドライバー検証ツールの詳細については、「ドライバー検証ツール」を参照してください。