既定の NDIS ポート

ポート 0 は、ミニポート アダプターの既定のポートとして予約されています。 いずれかの関数の PortNumber パラメーターまたは任意の構造体の PortNumber メンバーが 0 に設定されている場合、ミニポート ドライバーがポートを割り当てなかったか、現在のアクティビティがポート固有ではありません。

既定の NDIS ポートの良い例として、負荷分散とフェールオーバー (LBFO) MUX 中間ドライバーを検討してください。 このようなドライバーの仮想ミニポートは、ポート 0 (既定のポート) にすることができます。 中間ドライバーは、1 からポートの数 (N) の範囲のポート番号を使用して、基になるミニポート アダプターにポートを割り当てることができます。 基になるドライバーは、基になるポートのいずれかを選択する LBFO ドライバーを許可するポート 0 にデータを送信できます。または、上にあるドライバーは、送信操作の特定のポートを選択する 1 から N のポート番号を指定できます。

ミニポート ドライバーは、ポートを割り当てたり、既定のポート以外のポート番号をサポートしたりする必要はありません。 ミニポート ドライバーがポートを割り当てない場合でも、NDIS は既定のポートを割り当て、ミニポート ドライバーが NdisMSetMiniportAttributes 関数を呼び出して、NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES構造体の登録属性を設定した後にアクティブ化します。 ミニポート ドライバーは、 NdisMSetMiniportAttributes が正常に戻ったときに、既定のポートで操作を開始できます。 この場合、ミニポート ドライバーがミニポートHaltEx 関数から戻るときに、NDIS は既定のポートを解放します。