!ndiskd.netreport

!ndiskd.netreport 拡張コマンドは、ネットワーク スタック全体のビジュアル レポートを生成します。 !ndiskd.netreport が生成するレポートは HTML ファイルで、その場所へのリンクを提供します。 この HTML ファイルには、ネットワーク スタックに関する詳細な情報が含まれているため、分析のために共有する必要がある場合は、大きなクラッシュ ダンプ ファイルを送信する代わりに、電子メールで送信することができます。

!ndiskd.netreport [-outputpath <str>] [-jsononly] 

パラメーター

-outputpath
レポート ファイルの書き込み場所を指定します。

-jsononly
生データのみを書き込み、HTML は書き込みません。

DLL

Ndiskd.dll

!ndiskd.netreport 拡張コマンドを実行して、ネットワーク スタックのボックス図を描きます。

1: kd> !ndiskd.netreport


NETWORK STACK REPORT


    Want more stuff?  Rerun with the -verbose flag
                                                                                            

    Report was saved to C:\Users\******\AppData\Local\Temp\NKDFE9F.html
    View the report                        Send in email

下部の "View the report" リンクをクリックすると、生成されたレポートが表示されます。 次の画像は、クラッシュ ダンプ ファイルから生成されたネット レポートを示します。 それぞれの垂直スタックは、スタックのコンポーネントを示すレイヤーに分解されたネットワーク アダプターです。 各ボックスの色は、コンポーネントの名前をハッシュ化することで生成されるため、レポートを実行するたびに同じコンポーネントが同じ色でレンダリングされます。 つまり、特定のドライバーやアダプターの問題をデバッグする際に、そのドライバーやアダプターを簡単に特定することができます。

クラッシュ ダンプ ファイルから生成されたネットワーク デバッグ レポートのスクリーンショット。

比較として、次の画像は、クラッシュ ダンプ ファイルの代わりにアクティブなシステムから生成されたネット レポートを示します。 HTML ページの下部には、"Show data flows" と "Simulate packets" の 2 つのオプションがあり、レポートの上部には "Data flows" の 4 番目のタブがあることに注目してください。これらのオプションが表示されたのは、デバッグ対象マシンが NBL 追跡を有効にしていたためです。これにより !ndiskd.netreport は、NBL の追跡ログを解析して、情報を視覚的に表示できます。 NBL 追跡がオンになっていない場合、これらのオプションは表示されません。 NBL 追跡と NBL ログの詳細については、「!ndiskd.nbllog」を参照してください。

"Show data flow" にチェックマークを入れると、データが流れている経路を見ることができます。 "Simulate packets" ボックスにチェックマークを入れると、データ フロー経路を上下に移動するアニメーションの円を見ることができます。 各円はネットワーク パケットを表します。

アクティブなシステムから生成されたネットワーク デバッグ レポートのスクリーンショット。

アクティブなシステムからのこの 2 版目の例は、クラッシュ ダンプ ファイルを使用した最初の例とのもう 1 つの違いを示します。 2 番目の例のデバッグ対象マシンは、ネットワーク経由のカーネル デバッグ用にプロビジョニングされているため、データ フローがあるスタック上のネットワーク アダプターが Microsoft Kernel Debug Network Adapter であることがわかります。 このアダプターは、カーネル デバッグがデバッグ対象マシンで有効になっていない限り、通常は隠されています。 実際には、カーネル デバッグ ネットワーク アダプターがマシンのイーサネット アダプターをデバッグ セッション用に予約しているので、トラフィックはイーサネット経由で流れています。

ネットワーク スタックを可視化し、トラフィックがどこに流れているかを確認することで、問題のありそうな場所を素早く特定することができます。 これは、前の例よりも複雑なネットワーク図を持つ仮想スイッチやサーバーの場合に特に役立ちます。 たとえば、NIC チーミングを使用している Windows Server では、複数のネットワーク スタックが互いに交差してトラフィック負荷のバランスがとれているかどうかを確認し、あるスタックの底部に問題があり、それが別のスタックに影響を与えているかどうかを特定することができます。 これを示すネットワーク デバッグ レポートの例については、「ネットワーク スタックのデバッグ」を参照してください。 NIC チーミングの詳細については、「ネットワーク サブシステム パフォーマンスのための NIC チーミングの使用」を参照してください。

!ndiskd.netreport のレポートには、ページ上部に、System、Summaries、Data Flows のタブもある場合があります。 これらのタブには、ネットワーク スタックの状態に関するさらに役立つ情報が含まれています。 次の図は、Summaries タブの下にある Network Interfaces タブを示しています。このタブの表では、システム内のネットワーク インターフェイスの名前と識別子に関する詳細情報を確認できます。

ネットワーク デバッグ レポートの [ネットワーク インターフェイス] タブのスクリーンショット。

ターゲット システムで NBL 追跡が有効になっている場合に表示される Data flows タブには、トラフィック イベントの表とそれぞれの詳細が表示されます。 次の図は、前述のデバッグ レポートの 2 番目の例のアクティブ システムの Data flows タブです。

ネットワーク デバッグ レポートの [データ フロー] タブのスクリーンショット。

関連項目

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

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

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

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

!ndiskd.help

!ndiskd.nbllog

ネットワーク サブシステム パフォーマンスのためのNICチーミングの使用