バグ チェック 0x7C: BUGCODE_NDIS_DRIVER
BUGCODE_NDIS_DRIVER バグ チェックの値は 0x0000007C です。 このバグ チェックは、オペレーティング システムがネットワーク ドライバーでエラーを検出したことを示しています。
重要
この記事は、プログラマー向けです。 コンピューターを使用中に、ブルー スクリーン エラーが表示された場合は、「ブルー スクリーン エラーのトラブルシューティング」を参照してください。
BUGCODE_NDIS_DRIVER パラメーター
パラメーター 1 は違反の種類を示します。 他のパラメーターの意味は、パラメーター 1 の値によって異なります。 パラメーターの値が「0」の場合は、使用されていないことを意味します。
パラメーター 1 | パラメーター 1 の値とエラーの原因 | パラメータ 2 | パラメーター 3 | パラメーター 4 |
---|---|---|---|---|
0x01 |
NDIS_BUGCHECK_ALLOCATE_SHARED_MEM_HIGH_IRQL 挙げられた IRQL でドライバーが、NdisMAllocateSharedMemory を呼び出しました。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
要求された共有メモリの長さ |
現在の IRQL |
0x02 |
NDIS_BUGCHECK_SHARED_MEM_CORRUPTION NdisMAllocateSharedMemory の呼び出し中に、以前に割り当てられた共有メモリ ページが破損していることが NDIS によって検出されました。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
破損した共有メモリ ページ |
ドライバーによる共有メモリ割り当てを追跡する NDIS_WRAPPER_CONTEXTE のアドレス |
0x03 |
NDIS_BUGCHECK_FREE_INVALID_SHARED_MEM ミニポート ドライバーは、既に解放されている共有メモリ アドレスを持つ NdisMFreeSharedMemory (Async) を呼び出しました。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
この共有メモリが割り当てられたページ |
共有メモリの仮想アドレス |
0x04 |
NDIS_BUGCHECK_UNLOAD_DRIVER_INVALID_PARAMETER AddDevice は、NDIS に登録されているドライバーの一覧にないドライバーで呼び出されました。 特別にインストルメント化された NDIS でのみ有効です。 |
NDIS_M_DRIVER_BLOCK のアドレス |
DRIVER_OBJECT のアドレス |
0 |
0x05 |
NDIS_BUGCHECK_RECVD_PACKET_IN_USE_BAD_STACK_LOCATION イーサネット ドライバーは、プロトコル スタックで現在使用されているパケット記述子を使用してパケットを受信したことを示しました。 スタック パケットの場所チェックによってキャッチされます。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
ドライバーによって使用されるパケット記述子のアドレス。 詳細については、このアドレスで !ndiskd.pkt を実行します。 |
このパケット記述子を含むパケット配列のアドレス |
0x06 |
NDIS_BUGCHECK_RECVD_PACKET_IN_USE_BAD_REF_COUNT イーサネット ドライバーは、プロトコル スタックで現在使用されているパケット記述子を使用してパケットを受信したことを示しました。 パケット参照カウントをチェックすることによってキャッチされます。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
ドライバーによって使用されるパケット記述子のアドレス。 詳細については、このアドレスで !ndiskd.pkt を実行します。 |
このパケット記述子を含むパケット配列のアドレス |
0x07 |
FDDI ドライバーは、プロトコル スタックで現在使用されているパケット記述子を使用してパケットを受信したことを示しました。 参照カウントを確認することでキャッチされます。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
ドライバーによって使用されるパケット記述子のアドレス。 詳細については、このアドレスで !ndiskd.pkt を実行します。 |
このパケット記述子を含むパケット配列のアドレス |
0x08 |
NDIS_BUGCHECK_HALT_WITHOUT_INTERRUPT_DEREGISTER ミニポート ドライバーは、停止プロセス中にその割り込みを登録解除しませんでした。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
NDIS_MINIPORT_INTERRUPT のアドレス |
0 |
0x09 |
NDIS_BUGCHECK_HALT_WITHOUT_CANCEL_TIMER ミニポート ドライバーは、そのすべてのタイマーを正常にキャンセルせずに停止しました。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
ミニポート ドライバーのタイマー キューのアドレス (NDIS_MINIPORT_TIMER) |
0 |
0x0A |
NDIS_BUGCHECK_DRIVER_UNLOAD_UNEXPECTED ミニポート ドライバーが途中でアンロードされています。 |
NDIS_M_DRIVER_BLOCK のアドレス |
DRIVER_OBJECT のアドレス |
ミニポート ドライバーの参照カウント |
0x0B |
NDIS_BUGCHECK_INIT_FAILED_WITHOUT_INTERRUPT_DEREGISTER ミニポート ドライバーは、割り込みを登録解除せずに初期化に失敗しました。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
NDIS_MINIPORT_INTERRUPT のアドレス |
0 |
0x0C |
NDIS_BUGCHECK_INIT_FAILED_WITHOUT_CANCEL_TIMER ミニポート ドライバーは、そのすべてのタイマーを正常に取り消すことなく、初期化に失敗しました。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
ミニポート ドライバーのタイマー キューのアドレス (NDIS_MINIPORT_TIMER) |
0 |
0x0D |
NDIS_BUGCHECK_HALT_INIT_WITHOUT_INTERRUPT_DEREGISTER ミニポート ドライバーは、停止プロセス中にその割り込みを登録解除しませんでした。 ミニポート ドライバーが初期化ハンドラーから成功を返した後、停止が初期化ルーチンから呼び出されました。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
NDIS_MINIPORT_INTERRUPT のアドレス |
0 |
0x0E |
NDIS_BUGCHECK_HALT_INIT_WITHOUT_CANCEL_TIMER ミニポート ドライバーは、そのすべてのタイマーを正常にキャンセルせずに停止しました。 ミニポート ドライバーが初期化ハンドラーから成功を返した後、停止が初期化ルーチンから呼び出されました。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
ミニポート ドライバーのタイマー キューのアドレス (NDIS_MINIPORT_TIMER) |
0 |
0x0F |
NDIS_BUGCHECK_RESET_COMPLETE_UNEXPECTED 保留中のリセット要求なしで、ミニポート ドライバーが NdisMResetComplete を呼び出しました。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
リセット状態 |
AddressingReset (BOOLEAN) |
0煮10 |
NDIS_BUGCHECK_PM_INIT_FAILED_NO_INT_DEREGISTER 低電力状態から再開した後、ミニポート ドライバーは、割り込みを登録解除せずに初期化に失敗しました。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
NDIS_MINIPORT_INTERRUPT のアドレス |
0 |
0x11 |
NDIS_BUGCHECK_PM_INIT_FAILED_NO_CANCEL_TIMER 低電力状態から再開した後、ミニポート ドライバーは、すべてのタイマーを正常にキャンセルせずに初期化に失敗しました。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
ミニポート ドライバーのタイマー キューのアドレス (NDIS_MINIPORT_TIMER) |
0 |
0x12 |
NDIS_BUGCHECK_NFILTER_RECVD_PACKET_BAD_REF_COUNT ミニポート ドライバーは、プロトコル スタックで現在使用されているパケット記述子を使用してパケットを受信したことを示しました。 パケット参照カウントをチェックすることによってキャッチされます。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
ドライバーによって使用されるパケット記述子のアドレス。 詳細については、このアドレスで !ndiskd.pkt を実行します。 |
このパケット記述子を含むパケット配列のアドレス |
0x13 |
NDIS_BUGCHECK_TFILTER_RECVD_PACKET_BAD_REF_COUNT Token-Ring ドライバーは、プロトコル スタックで現在使用されているパケット記述子を使用してパケットを受信したことを示しました。 パケット参照カウントをチェックすることによってキャッチされます。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
ドライバーによって使用されるパケット記述子のアドレス。 詳細については、このアドレスで !ndiskd.pkt を実行します。 |
このパケット記述子を含むパケット配列のアドレス |
0x14 |
NDIS_BUGCHECK_WAIT_EVENT_HIGH_IRQL 無効な IRQL で NDIS ドライバーが NdisWaitEvent を呼び出しました。 |
実際の IRQL |
0 |
0 |
0x15 |
NDIS_BUGCHECK_INVALID_NDIS5_CALL ミニポート ドライバーが古いドライバー用に予約されている API を呼び出しました。 ドライバーは NDIS 6.x API のみを呼び出す必要があります。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
0 |
0 |
0x16 |
NDIS_BUGCHECK_INVALID_OPEN_IN_BIND_CONTEXT バインド中にプロトコル ドライバーが不正にアダプターを開きました。 |
特定のプロトコルのアドレス。 詳細については、このアドレスで !ndiskd.protocol を実行します。 |
プロトコル ドライバーが割り当てるコンテキスト領域のアドレス。 ndis!NDIS_BIND_CONTEXT にキャストします。 |
オープン ハンドルのアドレス。 詳細については、このアドレスで !ndiskd.mopen を実行します。 |
0x17 |
NDIS_BUGCHECK_IFPROVIDER_DEREGISTER_UNEXPECTED すべてのインターフェイスを最初に削除しないでインターフェイス プロバイダーが NdisIfDeregisterProvider を呼び出しました。 |
インターフェイス プロバイダー ハンドルのアドレス。 詳細については、このアドレスで !ndiskd.ifprovider を実行します。 |
0 |
0 |
0x1B |
NDIS_BUGCHECK_IF_STACK_TABLE_LOOP ドライバーが ifStackTable にインターフェイスを追加しようとしましたが、これを行うとサイクルが発生します。 ifStackTable にはサイクルを含めてはなりません。 !ndiskd.ifstacktable を実行して現在のテーブルを表示します (この NdisIfAddIfStackEntry の呼び出しの前)。 |
テーブルに追加される HigherLayerIfIndex |
テーブルに追加される LowerLayerIfIndex |
0 |
0x1C |
NDIS_BUGCHECK_MINIPORT_FAILED_OID_WHICH_MUST_SUCCEED ミニポート ドライバーが失敗してはならない OID 要求に失敗しました。 そうすると、メモリやその他のリソースがリークします。 |
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
失敗した OID。 !ndiskd.help を使用して、この OID の名前を見つけます。 |
OID 要求が完了したエラー状態コード (NDIS_STATUS_XXX) |
0x1D |
NDIS_BUGCHECK_OID_REQUEST_INVALID_BUFFER ミニポート ドライバーまたはフィルター ドライバーが OID 要求を不正に完了しました。 BytesWritten がバッファーの長さ全体を超えないことを確認します。 |
特定のミニポート アダプターまたはフィルター モジュール ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter または !ndiskd.filter を実行します。 |
不正に完了した NDIS_OID_REQUEST のアドレス。 !ndiskd.oid で検査します。 |
0 |
0x1E |
NDIS_BUGCHECK_REFCOUNT_IMBALANCE NDIS が内部参照カウントでエラーを検出しました。 これは、refcount アンダーフロー (参照よりも逆参照が多い) またはタグの不一致が原因で発生する可能性があります。 |
0 |
内部ハンドル。 !ndiskd.ndisref を使用するか、ndis!NDIS_REFCOUNT_BLOCK にキャストします。 |
現在の reftag 値 |
0x1F |
NDIS_BUGCHECK_ILLEGAL_MINIPORT_STATE_TRANSITION ミニポート ドライバーが不正に状態移行を完了しました。 |
失敗した内容。 指定できる値
|
特定のミニポート アダプター ブロックのアドレス。 詳細については、このアドレスで !ndiskd.netadapter を実行します。 |
0 |
0x20 |
NDIS_BUGCHECK_STATUS_INDICATION_INVALID_BUFFER ミニポート ドライバーまたはフィルター ドライバーが無効な NDIS_STATUS_INDICATION を示しました。 |
状態表示の種類。 詳細については、このコードで !ndiskd.help を実行します。 |
この無効な状態の表示を示したドライバー インスタンスのハンドル。 詳細については、このハンドルで !ndiskd.netadapter または !ndiskd.filter を実行します。 |
状態表示ペイロードのアドレス。 その解釈は、状態表示の種類によって異なります。 |
0x21 |
NDIS_BUGCHECK_INVALID_OBJECT_HEADER ドライバーによって無効な NDIS_OBJECT_HEADERが作成されました。 |
無効な状態の表示を示したドライバーのハンドル。 詳細については、このハンドルを使用して !ndiskd.minidriver または !ndiskd.filterdriver を実行します。 |
形式に誤りがあるヘッダーを持つオブジェクト。 その解釈は、呼び出される API によって異なります。 たとえば、ドライバーが、NdisAllocateCloneOidRequest を呼び出した場合、ndis!NDIS_OID_REQUEST へのオブジェクトをキャストします。 |
0 |
0x22 |
NDIS_BUGCHECK_ILLEGAL_NET_PNP_EVENT ミニポート ドライバーまたはフィルター ドライバーが無効な NET_PNP_EVENT_NOTIFICATION を示しました。 |
無効な状態の表示を示したドライバーのハンドル。 詳細については、このハンドルを使用して !ndiskd.minidriver または !ndiskd.filterdriver を実行します。 |
NET_PNP_EVENT_NOTIFICATION にキャスト |
0 |
0x23 |
NDIS_BUGCHECK_PD_ERROR パケット ダイレクト データパスでエラーが検出されました。 |
バグチェックのサブタイプ。 指定できる値
|
パラメーター 3 の値は、パラメーター 2 の値によって異なります。 このリストの各数値は、パラメーター 2 の同じ番号に対応します。
|
パラメーター 4 の値は、パラメーター 2 の値によって異なります。 このリストの各数値は、パラメーター 2 の同じ番号に対応します。
|
0x24 |
NDIS_BUGCHECK_UNEXPECTED_FAILURE 内部操作が予期せず失敗しました。 これは、NDIS.SYS 自体のバグである可能性があります。 |
失敗した操作。 指定できる値 0x01 : NDIS_BUGCHECK_UNEXPECTED_FAILURE_KEWAITFORSINGLEOBJECT KeWaitForSingleObject の呼び出しに失敗しました。 |
エラー状態コード |
0 |
0x25 |
NDIS_BUGCHECK_WATCHDOG ネットワーク スタックの管理に時間がかかりすぎています。 NDIS が他のドライバーに呼び出されると、NDIS は、呼び出しがすぐに完了するようにウォッチドッグ タイマーを開始します。 呼び出しに時間がかかりすぎる場合は、NDIS がバグ チェックを開始します。 これは、単純なデッドロックが原因で発生する可能性があります。 「!stacks 2 ndis」で確認するか、スレッドが疑わしいかどうかを確認します。 NDIS_WATCHDOG_TRIAGE_BLOCK の PrimaryThread に特に注意してください。 これは、失われた NBL が原因で発生する可能性があります。この場合 、!ndiskd.pendingnbls が役立つ可能性があります。 !ndiskd.oid を使用してスタックしている OID を確認します。 |
時間がかかりすぎた操作。 指定できる値
|
ndis!NDIS_WATCHDOG_TRIAGE_BLOCK にキャストします。 便利なフィールド:
|
パラメーター 4 の値は、パラメーター 2 の値によって異なります。 このリストの各数値は、パラメーター 2 の同じ 16 進値に対応します。
|
0x26 |
NDIS_BUGCHECK_INVALID_OID_COMPLETION ミニポート ドライバーは、そのミニポート ドライバーで現在保留中ではない OID 要求を完了しようとしました。 これは、ドライバーが同じ要求を複数回完了しようとした場合に発生する可能性があります。 |
バグの原因となったミニポート ドライバー ハンドルチェック。 詳細については、このハンドルで !ndiskd.minidriver を実行します。 |
ミニポート ドライバーが完了しようとしていた NDIS OID 要求。 この要求で !ndiskd.oid を実行することはできますが、この時点ではメモリが有効でない可能性があります。 |
0 |
0x27 |
NDIS_BUGCHECK_LEAKED_NBL ドライバーが NET_BUFFER_LIST 構造体をリークしました。 !ndiskd.pendingnbls をチェックして、このドライバーでまだ保留中の NBL を確認します。 |
リークが検出された場所。 指定できる値
|
0 |
0 |
原因
パラメーター 1 は、BUGCODE_NDIS_DRIVER バグ チェックの具体的な原因を示します。
解説
BUGCODE_NDIS_DRIVER バグ チェックは、ネットワーク ドライバーの問題を示します。 多くの場合、問題は NDIS ミニポート ドライバーによって発生します。 !ndiskd.netadapter を使用すると、NDIS ミニポート ドライバーの完全な一覧を取得できます。 !ndiskd.netreport を使用すると、ネットワーク スタックの全体像を把握できます。
このバグ チェック コードは、Microsoft Windows Server 2003 以降のバージョンの Windows でのみ発生します。 Windows 2000 および Windows XP では、対応するコードは バグ チェック 0xD2 (BUGCODE_ID_DRIVER) です。