OID_NIC_SWITCH_ENUM_VPORTS
上部のドライバーまたはユーザー モード アプリケーションは、OID_NIC_SWITCH_ENUM_VPORTS のオブジェクト識別子 (OID) メソッド要求を発行して、配列を取得します。 配列内の各要素は、ネットワーク アダプターの NIC スイッチに作成された仮想ポート (VPort) の属性を指定します。
NDIS_OID_REQUEST 構造体の InformationBuffer メンバーは、この OID クエリ要求から正常に返された後、次を含むバッファーへのポインターが含まれます。
配列内の要素の数を定義する NDIS_NIC_SWITCH_VPORT_INFO_ARRAY 構造体。
NDIS_NIC_SWITCH_VPORT_INFO 構造体の配列。 これらの構造体にはそれぞれ、ネットワーク アダプターの NIC スイッチ上の VPort に関する情報が含まれています。
注 ネットワーク アダプターに VPort が作成されていない場合、ドライバーは、NDIS_NIC_SWITCH_VPORT_INFO_ARRAY 構造体の NumElements メンバーを 0 に設定し、NDIS_NIC_SWITCH_VPORT_INFO 構造体は返されません。
解説
上部のドライバーとユーザー モード アプリケーションは、OID_NIC_SWITCH_ENUM_VPORTS の OID クエリ要求を発行して、ネットワーク アダプターの NIC スイッチに割り当てられている VPort を列挙します。
ドライバーまたはアプリケーションは、OID 要求を発行する前に、要求と一緒に渡される NDIS_NIC_SWITCH_VPORT_INFO_ARRAY 構造体を初期化する必要があります。 ドライバーまたはアプリケーションは、NDIS_NIC_SWITCH_VPORT_INFO_ARRAY 構造体を初期化するとき、次のガイドラインに従う必要があります。
NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH フラグがFlags メンバーで設定されている場合、指定された NIC スイッチに作成されたすべての VPort に関する情報が返されます。 NIC スイッチは、その構造体の SwitchId メンバーによって指定されます。
注 Windows Server 2012 以降では、SR-IOV インターフェイスは、ネットワーク アダプターの既定の NIC スイッチのみをサポートします。 Flags メンバーで設定されているフラグに関係なく、SwitchId メンバーは NDIS_DEFAULT_SWITCH_ID に設定される必要があります。
NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION フラグが Flags メンバーで設定されている場合は、ネットワーク アダプター上の指定された PCI Express (PCIe) 物理機能 (PF) または仮想機能 (VF) にアタッチされているすべての VPort に関する情報が返されます。 PF または VF は、その構造体の AttachedFunctionId メンバーによって指定されます。
AttachedFunctionId メンバーが NDIS_PF_FUNCTION_ID に設定されている場合は、ネットワーク アダプターの PF にアタッチされているすべての VPort (既定の VPort を含む) に関する情報が返されます。 AttachedFunctionId メンバーが有効な VF 識別子に設定されている場合は、指定された VF に対するすべての VPort の情報が返されます。
注 Windows Server 2012 以降では、既定以外の VPort は 1 つしか VF にアタッチできません。 ただし、複数の VPort (既定の VPort を含む) を PF にアタッチできます。
Flags メンバーが 0 に設定されている場合は、ネットワーク アダプター上の PF または VF にアタッチされているすべての VPort の情報が返されます。 この場合、SwitchId と AttachedFunctionId の値は無視されます。
詳細については、「ネットワーク アダプター上の仮想ポートの列挙」を参照してください。
状態コードを返す
NDIS は、ミニポート ドライバーの OID_NIC_SWITCH_ENUM_VPORTS 要求の OID メソッド要求を処理します。 ドライバーは、この OID 要求を発行しません。
NDIS は、OID_NIC_SWITCH_ENUM_VPORTS 要求を処理すると、次のいずれかの状態コードを返します。
状態コード | 説明 |
---|---|
NDIS_STATUS_SUCCESS |
OID 要求は正常に完了しました。 |
NDIS_STATUS_NOT_SUPPORTED |
ミニポート ドライバーがシングル ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートしていないか、インターフェイスの使用が有効になっていません。 |
NDIS_STATUS_INVALID_PARAMETER |
NDIS_NIC_SWITCH_VF_INFO_ARRAY 構造体の 1 つ以上のメンバーに無効な値が含まれています。 |
NDIS_STATUS_INVALID_LENGTH |
情報バッファーが短すぎました。 NDIS は、NDIS_OID_REQUEST 構造体の DATA.METHOD_INFORMATION.BytesNeeded メンバー を 必要な最小バッファー サイズに設定します。 |
NDIS_STATUS_FAILURE |
その他の理由で要求に失敗しました。 |
要件
バージョン |
NDIS 6.30 以降でサポートされています。 |
ヘッダー |
Ntddndis.h (Ndis.h を含む) |