!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 のハンドルを取得するには、以下の手順に従ってください。
- !ndiskd.netadapter 拡張コマンドを実行します。
- NetAdapterCx ドライバーがインストールされている NetAdapter のハンドルをクリックします。
- NetAdapter の NETADAPTER オブジェクトの右側にある "More Information" リンクをクリックして !ndiskd.cxadapter 拡張コマンドを実行します。
- -datapath パラメーターを使用して、!ndiskd.cxadapter コマンドを入力して NETADAPTERのデータパス キューを表示します。
- データパス キューの 1 つのハンドルをクリックします。
- そのデータパス キューのリング バッファのハンドルをクリックします。
- リング バッファの詳細の下部にある "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