ネットワーク アダプターでの仮想関数の列挙
上のドライバーまたはユーザー アプリケーションは、シングルルート I/O 仮想化 (SR-IOV) をサポートするネットワーク アダプター上のすべての PCI Express (PCIe) 仮想関数 (VFs) の一覧を取得することができます。 ドライバーまたはアプリケーションは、この一覧を取得する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 メンバーで設定されている場合、上のドライバーまたはアプリケーションは、SR-IOV ネットワーク アダプターの NIC スイッチの識別子に SwitchId メンバーを設定する必要があります。 この方法でこのメンバーを設定すると、SR-IOV ネットワーク アダプター上で指定した NIC スイッチのみに関する VF 情報が返されます。
注 上部のドライバーとユーザー モード アプリケーションは、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 に設定される必要があります。
NDIS_OID_REQUEST 構造体の InformationBuffer メンバーは、この OID クエリリクエストから正常に返された後、次を含むバッファーへのポインターが含まれます。
配列内の要素の数を定義する NDIS_NIC_SWITCH_VF_INFO_ARRAY 構造体。
NDIS_NIC_SWITCH_VF_INFO 構造体の配列。 これらの構造体にはそれぞれ、ネットワーク アダプターの NIC スイッチの VF 1つに関する情報が含まれています。 VF は、OID_NIC_SWITCH_ALLOCATE_VF の OID メソッドリクエストによって NIC スイッチにアタッチされます。
注 ネットワーク アダプターの NIC スイッチにアタッチされている VM がない場合、NDIS_NIC_SWITCH_VF_INFO_ARRAY 構造体の NumElements メンバーは 0 に設定され、NDIS_NIC_SWITCH_VF_INFO 構造体は返されません。
NIC スイッチの詳細は、「NIC スイッチ」をご覧ください。
NDIS は、ミニポート ドライバーの OID_NIC_SWITCH_ENUM_VFS リクエストを処理します。 NDIS は、次のソースより探知したインデータの内部キャッシュから情報を返します。