次の方法で共有


ネットワーク アダプターでの仮想関数の列挙

上にあるドライバーまたはユーザー アプリケーションは、単一ルート 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 メンバーを設定する必要があります。 この方法でこれらのメンバーを設定することで、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に設定する必要があります。

この 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 スイッチの詳細については、「NIC スイッチの」を参照してください。

NDIS は、ミニポート ドライバーの OID_NIC_SWITCH_ENUM_VFS 要求を処理します。 NDIS は、次記のソースを調査することにより維持するデータの内部キャッシュによって情報を返します。