基になるドライバーまたはユーザー モード アプリケーションは、配列を取得するOID_NIC_SWITCH_ENUM_VFSのオブジェクト識別子 (OID) メソッド要求を発行します。 配列内の各要素は、ネットワーク アダプターの NIC スイッチの NIC スイッチに接続されている PCI Express (PCIe) 仮想関数 (VF) の属性を指定します。
この OID クエリ要求から正常に戻った後、NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、次を含むバッファーへのポインターが含まれます。
配列内の要素の数を定義する NDIS_NIC_SWITCH_VF_INFO_ARRAY 構造体。
NDIS_NIC_SWITCH_VF_INFO 構造体の配列。 これらの各構造体には、ネットワーク アダプターの NIC スイッチ上の 1 つの VF に関する情報が含まれています。 VF は、OID_NIC_SWITCH_ALLOCATE_VFの OID メソッド要求を介して NIC スイッチに接続されます。
注 ネットワーク アダプターの NIC スイッチに VFs が接続されていない場合、NDIS_NIC_SWITCH_VF_INFO_ARRAY 構造体の NumElements メンバーは 0 に設定され、NDIS_NIC_SWITCH_VF_INFO 構造体は返されません。
備考
上にあるドライバーとユーザー モード アプリケーションは、ネットワーク アダプターの NIC スイッチに接続されている VM を列挙するOID_NIC_SWITCH_ENUM_VFSの OID メソッド要求を発行します。
ドライバーまたはアプリケーションが OID 要求を発行する前に、要求と共に渡される NDIS_NIC_SWITCH_VF_INFO_ARRAY 構造体を初期化する必要があります。 ドライバーまたはアプリケーションは、NDIS_NIC_SWITCH_VF_INFO_ARRAY 構造体を初期化するときに、次のガイドラインに従う必要があります。
NDIS_NIC_SWITCH_VF_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH フラグが Flags メンバーに設定されている場合、ドライバーまたはアプリケーションは、SwitchId メンバーを、SR-IOV ネットワーク アダプターの NIC スイッチ識別子に設定する必要があります。 この方法でこれらのメンバーを設定することで、VF 情報は、SR-IOV ネットワーク アダプター上の指定された NIC スイッチに対してのみ返されます。
メモ 上にあるドライバーとユーザー モード アプリケーションは、OID_NIC_SWITCH_ENUM_SWITCHESの OID クエリ要求を発行することで、NIC スイッチ識別子を取得できます。
Flags メンバーが 0 に設定されている場合、ドライバーまたはアプリケーションは、SwitchId メンバーを 0 に設定する必要があります。 この方法でこれらのメンバーを設定することで、SR-IOV ネットワーク アダプター上のすべての NIC スイッチの VF 情報が返されます。
注 Windows Server 2012 以降では、Windows はネットワーク アダプターの既定の NIC スイッチのみをサポートします。 Flags メンバーに設定されているフラグに関係なく、SwitchId メンバーをNDIS_DEFAULT_SWITCH_IDに設定する必要があります。
NIC スイッチの詳細については、「NIC スイッチの」を参照してください。
戻り値の状態コード
NDIS は、ミニポート ドライバーのOID_NIC_SWITCH_ENUM_VFS要求の OID メソッド要求を処理します。 ドライバーは、この OID 要求を発行されません。
NDIS は、OID_NIC_SWITCH_ENUM_VFS要求を処理すると、次のいずれかの状態コードを返します。
状態コード | 形容 |
---|---|
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 は、データを設定します。METHOD_INFORMATION。BytesNeededNDIS_OID_REQUEST 構造体のメンバーを、必要な最小バッファー サイズに設定します。 |
NDIS_STATUS_FAILURE |
その他の理由で要求が失敗しました。 |
必要条件
バージョン |
NDIS 6.30 以降でサポートされています。 |
ヘッダ |
Ntddndis.h (Ndis.h を含む) |