次の方法で共有


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

上のドライバーまたはユーザー アプリケーションは、シングルルート 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 は、次のソースより探知したインデータの内部キャッシュから情報を返します。

  • OID_NIC_SWITCH_ALLOCATE_VFOID メソッドリクエスト。

  • OID_NIC_SWITCH_VF_PARAMETERSOID セットリクエスト。