次の方法で共有


NDIS 拡張機能 (Ndiskd.dll)

このセクションでは、NDIS (ネットワーク デバイス インターフェイス仕様) ドライバーのデバッグに役立つデバッガー拡張機能 !ndiskd で使用できるコマンドについて説明します。 これらのコマンドを使用すると、ネットワーク ドライバー開発者が、Windows ネットワーク スタックの全体像と、ドライバーとやり取りする方法を確認可能になります。 !ndiskd では、すべてのネットワーク アダプター (!ndiskd.netadapter) の状態、コンピューターのネットワーク スタック (!ndiskd.netreport)、ネットワーク アダプター (!ndiskd.nbllog) 上のトラフィックのログ、または保留中のすべての OID 要求の一覧 (!ndiskd.oid) を確認できます。

コマンドは、Ndiskd.dll にあります。 シンボルを読み込むには、デバッガー コマンド ウィンドウに「.reload /f ndis.sys」と入力します。 正常に読み込まれたシンボルを確認するには、!lmi ndis 拡張を使用し、下の方で "シンボルが正常に読み込まれました" というフレーズを探します。 出力は次の例のようになります。

0: kd> !lmi ndis
Loaded Module Info: [ndis] 
         Module: ndis
   Base Address: fffff80174570000
     Image Name: ndis.sys
   Machine Type: 34404 (X64)
     Time Stamp: 938f9f4e (This is a reproducible build file hash, not a true timestamp)
           Size: 16f000
       CheckSum: 167a05
Characteristics: 22  
Debug Data Dirs: Type  Size     VA  Pointer
             CODEVIEW    21, d4060,   d2c60 RSDS - GUID: {9CC82DBE-96A0-773D-29E0-62B698C4C3A8}
               Age: 1, Pdb: ndis.pdb
                 POGO   988, d4084,   d2c84 [Data not mapped]
                REPRO    24, d4a0c,   d360c Reproducible build[Data not mapped]
     Image Type: MEMORY   - Image read successfully from loaded memory.
    Symbol Type: PDB      - Symbols loaded successfully from symbol server.
                 C:\ProgramData\Dbg\sym\ndis.pdb\9CC82DBE96A0773D29E062B698C4C3A81\ndis.pdb
    Load Report: public symbols , not source indexed 
                 C:\ProgramData\Dbg\sym\ndis.pdb\9CC82DBE96A0773D29E062B698C4C3A81\ndis.pdb

!ndiskd の拡張コマンドの多くは、デバッガー ウィンドウに表示される結果にハイパーリンクを表示します。 これらのハイパーリンクのテキストは、デバッグ対象コンピューターでコマンドを実行したときに表示される内容の正確な形式を示すために、提供されているサンプルに残されています。 例によっては、これらのリンクをクリックして一般的な使用フローを理解できるよう明示的に参照することもできますが、例には各コマンドの代替コマンド ライン形式も用意されています。

共通パラメーター

すべての !ndiskd コマンドは、次のジェネリック パラメーターをサポートします。

-verbose
追加の詳細を表示します。

-terse
一部の定型出力を抑制します。

-static
一部の対話型出力を抑制します。

-dml 0|1
DML (デバッガー マークアップ言語) 出力を有効にするかどうかを制御します。

-unicode 0|1
Unicode 文字の出力を許可するかどうかを制御します。

-indent N
インデント レベルごとに N 個のスペースを使用します。

-force
リモート データのサニティに関する一部の安全チェックをオーバーライドします。

-tracedata
!ndiskd 自体をデバッグするための詳細なトレース メッセージを表示します。

Net アダプター、NDIS ドライバー、および一般的なコマンド

次のコマンドは、コンピューターのネットワーク アダプター、ネットワーク ドライバー、およびネットワーク スタックに関連付けられている一般的なコマンド (rcvqueue、開く、フィルター、OID、RW ロックなど) に関する情報を表示します。

NET_BUFFER_LIST および NET_BUFFER コマンド

次のコマンドは、NET_BUFFER_LIST および NET_BUFFER 構造に関連する情報を表示します。

NetAdapterCx コマンド

次のコマンドは、ネットワーク アダプター WDF クラス拡張 NetAdapterCx とそれに関連付けられている構造、NET_RING_BUFFER および NET_PACKET に関連する情報を表示します。

ネットワーク インターフェイスのコマンド

次のコマンドは、ネットワーク インターフェイスに関連する情報を表示します。

NDIS_PACKET コマンド

次のコマンドは、NDIS_PACKET 構造に関する情報を表示します。 これらの拡張は、レガシ NDIS 5.x ドライバー用です。 NDIS_PACKET 構造体とそれに関連するアーキテクチャは非推奨になりました。

CoNDIS コマンド

次のコマンドは、接続指向 NDIS 接続に関する情報を表示します。

NDIS デバッグ コマンド

次のコマンドは、NDIS refcount、イベント ログ、スタック トレース、デバッグ トレースに関連する情報を表示します。

WDI コマンド

次のコマンドは、WDI ミニポート ドライバーに関する情報を表示します。

NDIS および !ndiskd 情報コマンド

次のコマンドは、NDIS.sys と ndiskd.dll に関する情報を表示します。

その他のコマンド

Windows Vista 以降の NDIS ドライバーの設計について詳しくは、『ネットワーク ドライバー設計ガイド』をご覧ください。

Windows Vista 以降の NDIS ドライバーのリファレンスについて詳しくは、「Windows Vista 以降のネットワーク リファレンス」をご覧ください。

!ndiskd デバッガー コマンドを使用してネットワーク スタックをデバッグするデモについては、「ネットワーク スタックのデバッグ」Channel 9 ビデオをご覧ください。