!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]
パラメーター
ハンドル
NDIS ミニポートのハンドル。
-basic
ミニポートに関する概要情報を表示します。
-diag
自動診断アラートを表示します (ある場合)。
-state
ミニポートの現在の状態を表示します。
バインド
ミニポート バインディングを表示します。
ポート
NDIS ポートのリストを表示します。
オフロード
タスク オフロードの状態と機能を示します。
-filterdb
現在のパケット フィルターを表示します。
タイマー
ミニポートによって割り当てられたタイマー オブジェクトを表示します。
-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 を調査することができます。