バグ チェック 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 に渡しました 。 |
0x10 |
現在の 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 ERROR XXX。ここで、 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 つ以上のドライバーを監視するように指示されている場合にのみ発生します。 ドライバー検証ツールを使用しない場合は、非アクティブ化してください。 詳細については、「ドライバー検証ツール」の 「ドライバー検証ツールを制御する方法」を参照してください。 この問題の原因となったドライバーの更新あるいは削除も検討してみてください。
あなたがドライバーの作成者である場合は、このバグ チェックで取得した情報を使用して、コード内のバグを修正してください。
ドライバー検証ツールの詳細については、「ドライバー検証ツール」を参照してください。