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

上のドライバーまたはユーザー アプリケーションはシングルルート I/O 仮想化 (SR-IOV) をサポートするネットワーク アダプターの NIC スイッチ上の仮想ポート (VPort) の一覧をすべて取得できます。 ドライバーまたはアプリケーションは、この一覧を取得するOID_NIC_SWITCH_ENUM_VPORTSのオブジェクト識別子 (OID) メソッドリクエストを発行します。

NDIS_OID_REQUEST 構造体の InformationBuffer メンバーは、この OID クエリリクエストから正常に返された後、次を含むバッファーへのポインターが含まれます。

上にのドライバーまたはユーザー アプリケーションがOID_NIC_SWITCH_ENUM_VPORTSリクエストを発行する前に、リクエストと共に譲渡する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 スイッチを1つのみサポートします。 このスイッチは既定の NIC スイッチと呼ばれており、NDIS_DEFAULT_SWITCH_ID識別子で参照します。 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 に設定されている場合は、すべての VPort の情報が返されます。 これには、PF に接続されている既定の VPort が含まれます。 AttachedFunctionId メンバーが有効な VF 識別子に設定されている場合は、指定された VF が添付されているすべての VPort の情報が返されます。

    Windows Server 2012 以降では、既定以外の VPort は 1 つしか VF にアタッチできません。 ただし、複数の VPort (既定の VPort を含む) を PF にアタッチできます。

  • Flags メンバーが 0 に設定されている場合は、ネットワーク アダプター上の PF または VF にアタッチされているすべての VPort の情報が返されます。 この場合では、SwitchIdAttachedFunctionId の値は無視されます。

NDIS は、ミニポート ドライバーの OID_NIC_SWITCH_ENUM_VPORTS リクエストを処理します。 NDIS は、次のソースより探知したインデータの内部キャッシュから情報を返します。