次の方法で共有


OID_NIC_SWITCH_ALLOCATE_VF 要求の発行

OID_NIC_SWITCH_ALLOCATE_VF のオブジェクト識別子 (OID) メソッド要求を PCI Express (PCIe) 物理関数 (PF) のミニポート ドライバーに発行する前に、上部のドライバーは NDIS_NIC_SWITCH_VF_PARAMETERS 構造体をフォーマットします。 この構造体には、ネットワーク アダプター上の PCIe 仮想関数 (VF) に割り当てられるリソースの構成パラメーターが含まれています。 上部のドライバーは、次の方法でこの構造体のメンバーを設定する必要があります。

  • SwitchId メンバーは、ネットワーク アダプターで以前に作成された NIC スイッチの識別子に設定する必要があります。 NIC スイッチは、OID メソッド要求 OID_NIC_SWITCH_CREATE_SWITCH を通して作成されます。

    OID メソッド要求 OID_NIC_SWITCH_ALLOCATE_VF を処理するとき、PCIe 物理関数 (PF) のミニポート ドライバーは、VF のリソースを割り当てます。 リソースが正常に割り当てられた場合、PF ミニポート ドライバーは、指定された NIC スイッチに VF を割り当てます。

    注: Windows Server 2012 の NDIS 6.30 以降で、SR-IOV インターフェイスはネットワーク アダプターの既定の NIC スイッチのみをサポートします。 SwitchId メンバーの値は、NDIS_DEFAULT_SWITCH_ID に設定する必要があります。

    NIC スイッチの詳細については、「NIC スイッチ」を参照してください。

  • VFId メンバーは、NDIS_INVALID_VF_FUNCTION_ID に設定する必要があります。

  • RequestorId メンバーは、NDIS_INVALID_RID に設定する必要があります。

  • VMFriendlyName メンバーと VMName メンバーは、Hyper-V 子パーティションのパラメーターに設定する必要があります。 PF ミニポート ドライバーは、情報目的でのみこれらのメンバーを使用します。

    注: Hyper-V 子パーティションは、仮想マシン (VM) とも呼ばれます。

    VF は、上部のドライバーが OID_NIC_SWITCH_CREATE_SWITCH 要求を発行する前に、指定された VM に関連付けられます。

  • NicName メンバーは、仮想マシン (VM) ネットワーク アダプターの識別子に設定する必要があります。 この仮想アダプターは、VM で実行されているゲスト オペレーティング システムで公開されます。 PF ミニポート ドライバーは、情報目的でのみこのメンバーを使用します。

    リソースが VF に割り当てられ、それが子パーティションにアタッチされている場合、VF ネットワーク アダプターはゲスト オペレーティング システムで公開されます。 VM ネットワーク アダプターは、ハードウェア ベースの VF データ パス経由のパケット転送において VF ネットワーク アダプターと連携します。

    ただし、ライブ マイグレーション中などでは、VF を子パーティションからデタッチできます。 この場合、パケット転送はソフトウェア ベースの合成データ パスを介して行われます。 これらのデータ パスの詳細については、「SR-IOV データ パス」を参照してください。

  • PermanentMacAddress メンバーと CurrentMacAddress メンバーは、VF の仮想ネットワーク アダプターのメディア アクセス制御 (MAC) アドレスに設定する必要があります。 これらのアドレスは、Hyper-V 子パーティションのゲスト オペレーティング システムで実行されるネットワーク スタックに公開されます。

上部のドライバーは、次の手順に従って、OID メソッド要求 OID_NIC_SWITCH_ALLOCATE_VF を発行します。

  1. 上部のドライバーは、OID メソッド要求の NDIS_OID_REQUEST 構造体を初期化します。 ドライバーは、InformationBuffer メンバーを、初期化された NDIS_NIC_SWITCH_VF_PARAMETERS 構造体へのポインターに設定します。

  2. 上部のドライバーは、上部の PF ミニポート ドライバーに OID 要求を発行する NdisOidRequest を呼び出します。

    注: 上部のドライバーが NdisOidRequest を呼び出すと、 NDIS が OID 要求をインターセプトし、NDIS_NIC_SWITCH_VF_PARAMETERS 構造体で指定された VF パラメーターを検証します。 パラメーターの検証結果が正常だった場合、NDIS は、PF ミニポート ドライバーに OID を転送します。 それ以外の場合、NDIS は、NDIS_STATUS_INVALID_PARAMETER で OID 要求を失敗します。

上部のドライバーが VF のリソース割り当てを要求した後、そのドライバーは、同じ VF のリソースの解放を要求できる唯一のコンポーネントです。 上部のドライバーは、VF リソースを解放する OID 設定要求 OID_NIC_SWITCH_FREE_VF を発行する必要があります。 上部のドライバーを停止する前に、ドライバーの OID_NIC_SWITCH_ALLOCATE_VF 要求によって割り当てられた各 VF のリソースを解放する必要があります。