次の方法で共有


!ndiskd.netadapter

!ndiskd.netadapter 拡張コマンドは、システム上でアクティブな NDIS ミニポート (ネットワーク アダプター) に関する情報を表示します。 このコマンドをパラメーターなしで実行すると、!ndiskd はすべてのネットワーク アダプターのリストを表示します。

     !ndiskd.netadapter [-handle <x>] [-basic] [-diag] [-state] [-bindings] 
        [-ports] [-offloads] [-filterdb] [-timers] [-rst]
        [-pm] [-ss] [-aoac] [-wol] [-protocoloffloads]
        [-rss] [-hw] [-device] [-wmi] [-customwmi]
        [-ndiswmi] [-ref] [-log] [-grovel] [-findname <any>]
        [-rcvfilter] [-nicswitch] [-rcvqueues] [-nicswitches] [-iov]
        [-vfs] [-vports] [-iftrace] [-ip]

パラメーター

-handle
NDIS ミニポートのハンドル。

-basic
ミニポートに関する概要情報を表示します。

-diag
自動診断アラートを表示します (ある場合)。

-state
ミニポートの現在の状態を表示します。

-bindings
ミニポート バインディングを表示します。

-ports
NDIS ポートのリストを表示します。

-offloads
タスク オフロードの状態と機能を示します。

-filterdb
現在のパケット フィルターを表示します。

-timers
ミニポートによって割り当てられたタイマー オブジェクトを表示します。

-rst
受信側スロットリングの状態を示します。

-pm
電源管理の状態と機能を示します。

-ss
選択的中断状態を示します。

-aoac
AOAC (コネクト スタンバイ) 状態を示します。

-wol
Wake-on-LAN (WoL) の設定を示します。

-protocoloffloads
アクティブな電源管理プロトコルのオフロードを示します。

-rss
Receive Side Scaling パラメーターを示します。

-hw
ハードウェア リソースを表示します。

-device
基礎となる NT デバイス オブジェクトに関する情報を表示します。

-wmi
アダプターに登録されている WMI GUID を示します。

-customwmi
ミニポートによって登録されたカスタム WMI GUID を示します。

-ndiswmi
NDIS が提供する WMI GUID を示します。

-ref
ミニポートの参照の内訳を示します。

-log
PnP と電源のイベント ログを表示します。

-grovel
メモリ内のミニポート ブロックを強制的に検索させます。

-findname
名前のプレフィックスでミニポートをフィルター処理します。

-rcvfilter
受信フィルター機能を示します。

-nicswitch
NIC スイッチの機能を示します。

-rcvqueues
受信キューを示します。

-nicswitches
NIC スイッチを示します。

-iov
SR-IOV (シングル ルート I/O 仮想化) 機能を示します。

-vfs
SR-IOV VF (仮想フィルター) を示します。

-vports
Vports (仮想ポート) を示します。

-ifrtrace
インフライト レコーダーのトレースを示します。

-ip
ネットワークのインターフェイス上の IP アドレスを示します。

DLL

Ndiskd.dll

!ndiskd.netadapter をパラメーターなしで実行すると、システム上のすべてのネットワーク アダプターと、関連するミニポート ドライバーのリストを取得できます。 この出力例で、Microsoft Kernel Debug Network Adapter を探します。そのハンドルは fffdf80140c71a0 です。 カーネル デバッグ ネットワーク アダプターの詳細については、NDIS ブログで「ネットワーク経由でのカーネル デバッグ」を参照してください。

3: kd> !ndiskd.netadapter
    Driver             NetAdapter          Name                                 
    ffffdf8015a98380   ffffdf8015aa11a0    Microsoft ISATAP Adapter #2
    ffffdf801418d650   ffffdf80140c71a0    Microsoft Kernel Debug Network Adapter

ミニポートドライバーのハンドルをクリックするか、!ndiskd.netadapter -handle を入力すると、そのデバイス上の NDIS の状態をすべて表示できます。 これは、ネットワーク ドライバーのトラブルシューティングや、ネットワーク スタックのどこに問題があるのかを突き止めるための出発点として非常に役立ちます。 たとえば、ドライバーのデータパスの状態を見たり、接続されているかどうかを見ることができます。

このネット アダプターのレポートの下部には、保留中の OID やタスク オフロードの状態など、さらに詳しい情報を調べるためにクリックできるリンクがたくさんあります。 これらのリンクは、!ndiskd.netadapter の多くのパラメーターに対応します。

3: kd> !ndiskd.netadapter ffffdf80140c71a0


MINIPORT

    Microsoft Kernel Debug Network Adapter

    Ndis handle        ffffdf80140c71a0
    Ndis API version   v6.20
    Adapter context    ffffdf80147d7230
    Driver             ffffdf801418d650 - kdnic  v4.2
    Network interface  ffffdf80139b3a20

    Media type         802.3
    Physical medium    NdisPhysicalMediumOther
    Device instance    ROOT\KDNIC\0000
    Device object      ffffdf80140c7050    More information
    MAC address        18-03-73-c1-e8-72


STATE

    Miniport           Running
    Device PnP         Started             Show state history
    Datapath           Normal
    Interface          Up
    Media              Connected
    Power              D0
    References         0n10                Show detail
    Total resets       0
    Pending OID        None
    Flags              NOT_BUS_MASTER, ALLOW_BUGCHECK_CALLBACK,
                       BUGCHECK_CALLBACK_REGISTERED, DEFAULT_PORT_ACTIVATED,
                       SUPPORTS_MEDIA_SENSE, DOES_NOT_DO_LOOPBACK,
                       MEDIA_CONNECTED
    PnP flags          VIRTUAL_DEVICE, HIDDEN, NO_HALT_ON_SUSPEND,
                       RECEIVED_START


BINDINGS

    Protocol list      Driver              Open               Context           
    MSLLDP             ffffdf80120a5c10    ffffdf8015a749c0   ffffdf8015d325e0
    TCPIP              ffffdf80131cc010    ffffdf801494a650   ffffdf801494aa50
    NDISUIO            ffffdf8015a58140    ffffdf8015a78c10   ffffdf8015a77e00
    TCPIP6             ffffdf80131c9c10    ffffdf80147875a0   ffffdf801494f010
    (RASPPPOE)         Not running
    RSPNDR             ffffdf80120a0c10    ffffdf8015a79c10   ffffdf8015a79010
    LLTDIO             ffffdf8015a5f9b0    ffffdf801406f010   ffffdf8015a786c0
    (RDMANDK)          ffffdf801406d8f0    Declined with NDIS_STATUS_NOT_RECOGNIZED

    Filter list        Driver              Module             Context           
    WFP 802.3 MAC Layer LightWeight Filter-0000
                       ffffdf80139a5a70    ffffdf801494c670   ffffdf801494a010
    QoS Packet Scheduler-0000
                       ffffdf8014039d90    ffffdf801494dc70   ffffdf80147dc2b0
    WFP Native MAC Layer LightWeight Filter-0000
                       ffffdf80139fcd70    ffffdf8014950c70   ffffdf8014950880



MORE INFORMATION

    Driver handlers                        Task offloads
    Power management                       PM protocol offloads
    Pending OIDs                           Timers
    Pending NBLs                           Receive side throttling
    Wake-on-LAN (WoL)                      Packet filter
    Receive queues                         Receive filtering
    RSS                                    NIC switch
    Hardware resources                     Selective suspend
    NDIS ports                             WMI guids
    Diagnostic log

さらなるデバッグの出発点として !ndiskd.netadapter を使用する例として、レポートの下部にある "Driver handlers" リンクをクリックすると、このネット アダプターのミニポート ドライバーの登録されているすべてのドライバー コールバック ハンドラーのリストが表示されます。 次の例では、リンクをクリックすると、!ndiskd はこのネット アダプターのミニポート ドライバーのハンドルを使用して !ndiskd.minidriver 拡張コマンドを実行できるようになります。 ミニポート ドライバーは kdnic 4.2 で、そのハンドルは fffdf801418d650 です。

3: kd> !ndiskd.minidriver ffffdf801418d650 -handlers


HANDLERS

    NDIS Handler                           Function pointer   Symbol (if available)
    InitializeHandlerEx                    fffff80f1fd78230  bp
    SetOptionsHandler                      fffff80f1fd72800  bp
    HaltHandlerEx                          fffff80f1fd78040  bp
    ShutdownHandlerEx                      fffff80f1fd722c0  bp

    CheckForHangHandlerEx                  fffff80f1fd72810  bp
    ResetHandlerEx                         fffff80f1fd72f70  bp

    PauseHandler                           fffff80f1fd78000  bp
    RestartHandler                         fffff80f1fd78940  bp

    OidRequestHandler                      fffff80f1fd71c90  bp
    CancelOidRequestHandler                fffff80f1fd722c0  bp
    DirectOidRequestHandler                [None]
    CancelDirectOidRequestHandler          [None]
    DevicePnPEventNotifyHandler            fffff80f1fd789a0  bp

    SendNetBufferListsHandler              fffff80f1fd71870  bp
    ReturnNetBufferListsHandler            fffff80f1fd71b50  bp
    CancelSendHandler                      fffff80f1fd722c0  bp

これで、各ハンドラーの右側にある "bp" リンクをクリックすると、そのハンドラーにブレークポイントを設定し、特定の問題をデバッグできるようになりました。 たとえば、データパスにハングがある場合、ドライバーの SendNetBufferListsHandler または ReturnNetBufferListsHandler を調査することができます。

関連項目

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

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

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

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

!ndiskd.help

ネットワーク経由でのカーネル デバッグ

!ndiskd.minidriver