NdisMIndicateStatus 関数 (ndis.h)
注 NDIS 5 です。 x は非推奨となり、NDIS 6 に置き換えられます。 x をします。 新しい NDIS ドライバーの開発については、「Windows Vista 以降のネットワーク ドライバーを参照してください。 NDIS 5 の移植に関する情報。 NDIS 6 に x ドライバーを します。 x、NDIS 6.0 に NDIS 5.x ドライバーを移植するを参照してください。
NdisMIndicateStatus は、高レベル NDIS ドライバーに NIC の状態の変化を示します。
構文
void NdisMIndicateStatus(
[in] NDIS_HANDLE MiniportHandle,
[in] NDIS_STATUS GeneralStatus,
[in] PVOID StatusBuffer,
[in] UINT StatusBufferSize
);
パラメーター
[in] MiniportHandle
ミニポート初期化に最初に入力ハンドルを指定します。
[in] GeneralStatus
NIC の状態の一般的な変更を示すNDIS_STATUS_ XXX 値を指定します。
[in] StatusBuffer
GeneralStatusの値に依存する、中に固有のデータを含む呼び出し元によって割り当てられたバッファーへのポインター。 状態の変更に関する詳細情報を示します。
[in] StatusBufferSize
StatusBuffer のバッファーのサイズバイト単位で指定します。
戻り値
何一つ
備考
ミニポート ドライバーが NdisMIndicateStatus 呼び出すと、NDIS は各バインドされたプロトコルの ProtocolStatus 関数を呼び出します。 これにより、バインドされたプロトコル ドライバー、または場合によっては、構成マネージャーは、基になる NIC の状態の変更をログに記録したり、修正アクションを実行したりできます。 たとえば、プロトコルは、示されているNDIS_STATUS_ XXX に応じて、NdisReset呼び出す場合があります。
ミニポート ドライバーが NDISMIndicateStatus を呼び出して NIC の状態の変化を報告する場合、NDIS は、ミニポートReset 関数を呼び出して、NIC を動作状態に復元できます。 このような状況では、NDIS は、ミニポート ドライバーによって示される GeneralStatus ではなく、NDIS_STATUS_RESET_END NDIS_STATUS_RESET_START以降でのみバインドされたプロトコルを呼び出すことができます。
NdisMIndicateStatus では、次の 2 つの情報が提供されます。
- 状態の全般的な変化を示す全体的な状態値。
- 一般的な変更の特定の理由 。ネットワーク固有の場合があります。 たとえば、リング挿入エラーはトークン リング (802.5) ネットワークに固有ですが、イーサネット (802.3) NIC とそのドライバーには関係ありません。
ミニポート ドライバーは、NdisMIndicateStatus を呼び出して、誤って取り外されて再挿入されたケーブルや、一時的に失敗したリングなどの問題を示すこともできます。 たとえば、次の条件が両方とも発生するとします。
ミニポート ドライバーは、NDIS_STATUS_RING_STATUS NdisMIndicateStatus を呼び出します。
StatusBuffer には、次のいずれかの状態値が含まれています。
- NDIS_RING_LOBE_WIRE_FAULT
- NDIS_RING_HARD_ERROR NDIS_RING_SIGNAL_LOSS
このような状態の変化が通知されると、関連付けられているしきい値または統計カウンターは変更されません。
ミニポート ドライバーは、ミニポートISR、ミニポート ハルト、またはミニポート シュットダウン 関数のコンテキストで NdisMIndicateStatus呼び出すことはできません。 逆シリアル化されたミニポート ドライバーのみが、ミニポート初期化 関数のコンテキストで NdisMIndicateStatus 呼び出すことができます。
ミニポート ドライバーは、NdisMIndicateStatus を呼び出す前保持しているスピン ロックを解放する必要があります。
NdisMIndicateStatus のシリアル化された呼び出し元は、IRQL = DISPATCH_LEVEL で実行する必要があります。 NdisMIndicateStatus の逆シリアル化された呼び出し元は、IRQL <= DISPATCH_LEVELで実行する必要があります。
ネットワーク接続 の損失と復元を示す
ミニポート ドライバーは、ネットワーク接続が失われたことを検出すると、NDIS_STATUS_MEDIA_DISCONNECTで NdisMIndicateStatus 呼び出す必要があります。 接続が復元されると、ミニポート ドライバーは、NDIS_STATUS_MEDIA_CONNECT NdisMIndicateStatus を呼び出す必要があります。
注 802.11 ミニポート ドライバーは、ネットワーク接続の表示を生成するときにワイヤレス LAN のメディア状態ガイドラインに従う必要があります。 これらのガイドラインの詳細については、「802.11 ネットワーク のメディア ステータス表示」を参照してください。
802.11 NdisMIndicateStatus へのワイヤレス LAN ミニポート ドライバーの呼び出し
802.11 ワイヤレス LAN (WLAN) ミニポート ドライバーは、WLAN メディアに固有のさまざまな表示を行うことができます。 たとえば、ミニポート ドライバーは、次の場合に WLAN 固有の表示を行うことができます。
- ドライバーは、現在の BSS 関連付けの受信信号強度が変更されたことを検出します。
- ドライバーは、受信したパケットで TKIP MIC エラーを検出します。
次の種類の WLAN 固有の表示は、NdisMIndicateStatusを持つ 802.11 ミニポート ドライバーによって行うことができます。
これらのメディア固有の表示の詳細については、「802.11 Media-Specific Status Indications」を参照してください。
NdisMIndicateStatus への WAN ミニポート ドライバー呼び出しの
ほとんどの WAN NIC ドライバーは、いくつかの特殊な状態コードとバッファーの内容で状態を示します。 これらの状態表示は WAN NIC ドライバーによって生成され、このようなミニポート ドライバーにバインドされている NDIS プロトコル ドライバーは、これらの表示を無視できます。 ただし、通常、これらの表示を正しく処理すると、プロトコルと WAN NIC ドライバーのパフォーマンスが向上します。
次の 4 種類の WAN 固有の表示は、NdisMIndicateStatus バインドされたプロトコル ドライバーに送信できます。
- 並ぶ
- 下に線を引く
- 断片
- TAPI 行イベント
NDIS_STATUS_WAN_LINE_UP
WAN ミニポート ドライバーは、新しいリンクがアクティブになるたびに、ラインアップ表示を行います。 これが発生するまで、NIC はフレームを受け入れて成功または失敗させますが、実際にはリモート ノードで受信される可能性は低くなります。 これが発生するまで、プロトコルはタイマーと再試行回数を減らして、送信接続の試行をすばやく失敗させる必要があります。
WAN ミニポート ドライバーは、OID_TAPI_GET_ID 要求から戻る前に、NdisMIndicateStatus でこの指示を行います。
ラインナップ表示の状態コードがNDIS_STATUS_WAN_LINE_UP。 StatusBuffer のバッファーは、NDIS_MAC_LINE_UP 構造体として書式設定されます。
NDIS_STATUS_WAN_LINE_DOWN
WAN ミニポート ドライバーは、リンクがダウンするたびに行を示します。 これが発生した場合、バインドされたプロトコルはタイマーを減らし、次のラインアップ表示まで再試行する必要があります。
行下表示の状態コードがNDIS_STATUS_WAN_LINE_DOWN。 StatusBuffer のバッファーは、NDIS_MAC_LINE_DOWN 構造体として書式設定されます。
NDIS_STATUS_WAN_FRAGMENT
WAN ミニポート ドライバーは、リモート ノードから部分的なパケットを受信するたびにフラグメントを示します。 これが発生した場合、バインドされたプロトコルは、タイムアウトが発生するのを待つのではなく、この状況を通知するフレームをリモート ノードに送信する必要があります。
フラグメント表示の状態コードがNDIS_STATUS_WAN_FRAGMENT。 StatusBuffer のバッファーは、NDIS_MAC_FRAGMENT 構造体として書式設定されます。
NDISWAN は、各リンクのフラグメント表示の数をカウントすることによって、ドロップされたパケットを監視します。
NDIS_TAPI_EVENT
WAN ミニポート ドライバーは、TAPI 状態表示 NDIS_STATUS_TAPI_INDICATIONの GeneralStatus 値を使用する必要があります。 StatusBuffer のバッファー NDIS_TAPI_EVENT構造体として書式設定されます。
- ターゲット プラットフォーム: ユニバーサル
- バージョン: Windows Vista の NDIS 6.0 ドライバーではサポートされていません。 代わりに、NdisMIndicateStatusEx使用してください。 Windows Vista および Windows XP の NDIS 5.1 ドライバーでサポートされています。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ndis.h (Ndis.h を含む) |
ライブラリ | Ndis.lib |
関連項目
- ミニポート初期化
- ミニポートResetの
- NDIS_MAC_FRAGMENT
- NDIS_MAC_LINE_DOWN
- NDIS_MAC_LINE_UP
- NdisMIndicateStatusCompleteの
- NDIS_TAPI_EVENT
- ProtocolStatus
- 802.11 ネットワーク の メディアステータス表示
- 802.11 Media-Specific Status Indications