次の方法で共有


!ndiskd.netpacket

!ndiskd.netpacket 拡張コマンドは、NET_PACKET 構造体に関する情報を表示します。

ネットワーク アダプター WDF クラス拡張 (NetAdapterCx) の詳細については、「ネットワーク アダプター WDF クラス拡張 (Cx)」を参照してください。

!ndiskd.netpacket -handle <x> [-basic] [-layout] [-checksum] [-data]

パラメーター

ハンドル
必須。 NET_PACKET のアドレス。

-basic
基本情報を表示

-layout
パケット プロトコルのレイアウトを表示します。

チェックサム
パケットのチェックサム情報を表示します。

-data
ペイロード メモリをダンプします。

DLL

Ndiskd.dll

オブジェクトの概要」を参照して、NET_PACKET オブジェクトと NetAdapterCx 内のその他のオブジェクトとの関係を説明した図をご覧ください。

NET_PACKET のハンドルを取得するには、以下の手順に従ってください。

  1. !ndiskd.netadapter 拡張コマンドを実行します。
  2. NetAdapterCx ドライバーがインストールされている NetAdapter のハンドルをクリックします。
  3. NetAdapter の NETADAPTER オブジェクトの右側にある "More Information" リンクをクリックして !ndiskd.cxadapter 拡張コマンドを実行します。
  4. -datapath パラメーターを使用して、!ndiskd.cxadapter コマンドを入力して NETADAPTERのデータパス キューを表示します。
  5. データパス キューの 1 つのハンドルをクリックします。
  6. そのデータパス キューのリング バッファのハンドルをクリックします。
  7. リング バッファの詳細の下部にある "List all elements" リンクをクリックすると、そのリング バッファに含まれている要素が表示されます。

この手順のステップ 1 ~ 4 の詳細については、「!ndiskd.cxadapter」トピックの例を参照してください。 この手順のステップ 5 の詳細については、「!ndiskd.netqueue」トピックの例を参照してください。 この手順のステップ 6 ~ 7 の詳細については、!ndiskd.netrb」トピックの例を参照してください。 次の例では、最初の NET_PACKET のハンドル fffd1022d000040 を探します。

0: kd> !ndiskd.netrb ffffd1022d000000 -dump

    [000] ffffd1022d000040 - NET_PACKET
    [001] ffffd1022d0000c0 - NET_PACKET
    [002] ffffd1022d000140 - NET_PACKET
    [003] ffffd1022d0001c0 - NET_PACKET
    [004] ffffd1022d000240 - NET_PACKET
    [005] ffffd1022d0002c0 - NET_PACKET
    
    ...

    [07b] ffffd1022d003dc0 - NET_PACKET
    [07c] ffffd1022d003e40 - NET_PACKET
    [07d] ffffd1022d003ec0 - NET_PACKET
    [07e] ffffd1022d003f40 - NET_PACKET
    [07f] ffffd1022d003fc0 - NET_PACKET

この NET_PACKET のハンドルをクリックするか、コマンド ラインで !ndiskd.netpacket -handle を入力すると、この NET_PACKET の詳細 (この NET_PACKET を含んでいるリング バッファ、そのリング バッファを含んでいるデータパス キュー、その最初のフラグメントのハンドルなど) を表示することができます。

0: kd> !ndiskd.netpacket ffffd1022d000040


    NET_PACKET         ffffd1022d000040    Ring Buffer        ffffd1022d000000
    First fragment     ffffd1022d000040    NETTXQUEUE         ffffd1022f512700

    Client Context     ffffd1022d000090

    Show protocol layout
    Show checksum information
    Dump data payload

これで、基本的な記述をその他の !ndiskd.netpacket パラメーターのいずれかと組み合わせて、またはそれらすべてを使用して、このフラグメントの特定の情報を表示することができるようになりました。 次の例では、すべてのパラメーターを使用しています。

0: kd> !ndiskd.netpacket ffffd1022d000040 -basic -layout -checksum -data

    NET_PACKET         ffffd1022d000040    Ring Buffer        ffffd1022d000000
    First fragment     ffffd1022d000040    NETTXQUEUE         ffffd1022f512700

    Client Context     ffffd1022d000090


    Protocol Layout                                                             

    Layer 2 Type       ETHERNET
    Header Length      0n14

    Layer 3 Type       IPV4_NO_OPTIONS
    Header Length      0n20

    Layer 4 Type       UDP
    Header Length      8


    Checksum Information                                                        

    Layer 2            TX_PASSTHROUGH
    Layer 3            TX_REQUIRED
    Layer 4            TX_PASSTHROUGH


    Payload data                                                                

    Fragment           ffffd1022d000040
    ffffd102303e8332  00 00 01 02 71 68 0a 89-be 39 e0 00 00 16 94 04  ····qh···9······
    ffffd102303e8342  00 00 22 00 fa 01 00 00-00 01 03 00 00 00 e0 00  ··"·············
    ffffd102303e8352  00 fc   

関連項目

ネットワーク ドライバー設計ガイド

Windows Vista 以降のネットワーク リファレンス

ネットワークスタックのデバッグ

NDIS 拡張コマンド (Ndiskd.dll)

!ndiskd.help

ネットワーク アダプター WDF クラス拡張 (Cx)

オブジェクトの概要

NET_PACKET

!ndiskd.netadapter

!ndiskd.cxadapter

!ndiskd.netqueue

!ndiskd.netrb