NDIS_STATUS_SWITCH_PORT_REMOVE_VF 状態の表示は、仮想マシン (VM) ネットワーク アダプターと PCI Express (PCIe) 仮想関数 (VF) の間のバインドを削除するために、Hyper-V 拡張可能スイッチ転送拡張機能によって発行されます。 VF は、単一ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートする基になる物理ネットワーク アダプターによって公開およびサポートされます。
NDIS_STATUS_SWITCH_PORT_REMOVE_VF 状態表示を発行するには、転送拡張機能が NDIS_SWITCH_NIC_STATUS_INDICATION 構造に表示をカプセル化し、NDIS_STATUS_SWITCH_NIC_STATUS 状態表示を発行する必要があります。
このプロセスの詳細については、「NDIS_STATUS_SWITCH_PORT_REMOVE_VF ステータス表示 を発行するためのガイドライン」を参照してください。
備考
PCIe VF が作成され、SR-IOV インターフェイスをサポートする基になる物理アダプターによって割り当てられます。 作成されると、仮想化スタックによって、VF が Hyper-V 子パーティションにアタッチされるか、によって割り当てられます。 このパーティションで実行されるゲスト オペレーティング システムは、基になる SR-IOV 物理アダプターの VF にバインドされている仮想マシン (VM) ネットワーク アダプターを公開します。
仮想ネットワーク アダプターと物理ネットワーク アダプターが割り当てられると、パケットは VF と VM ネットワーク アダプターの間で直接ルーティングされます。 ただし、拡張可能スイッチはパケット配信に関与しないため、拡張可能スイッチ ポート ポリシーはこれらのパケットには適用されません。 これには、アクセス制御リスト (ACL) とサービス品質 (QoS) のポート ポリシーが含まれます。
拡張可能スイッチ転送拡張機能は、NDIS_STATUS_SWITCH_PORT_REMOVE_VF 状態表示を発行することによって、子パーティションへの VF の割り当てを削除できます。 この兆候により、VM ネットワーク アダプターと、基になる SR-IOV 物理アダプターの VF の間で直接ではなく、拡張可能なスイッチ ポートを介してパケットが配信されます。 これにより、拡張可能スイッチ ポートを介して受信または送信されるパケットに拡張可能スイッチ ポート ポリシーを適用できます。
転送拡張機能は、NDIS_STATUS_SWITCH_PORT_REMOVE_VF 状態を示す場合、VM ネットワーク アダプターが接続されている拡張可能スイッチ ポートを指定します。
拡張可能スイッチ転送拡張機能の詳細については、「転送拡張機能の」を参照してください。
NDIS_STATUS_SWITCH_PORT_REMOVE_VFステータス表示の発行に関する ガイドライン
NDIS_STATUS_SWITCH_PORT_REMOVE_VF ステータス表示を発行するには、転送拡張機能で次の手順を実行する必要があります。
転送拡張機能は、NDIS_STATUS_SWITCH_PORT_REMOVE_VF 表示の NDIS_STATUS_INDICATION 構造体を初期化します。 この場合、転送拡張機能は、NDIS_STATUS_INDICATION 構造体の次のメンバーを設定します。
StatusCode メンバーを NDIS_STATUS_SWITCH_PORT_REMOVE_VFに設定する必要があります。
StatusBuffer メンバーは、NULL 設定する必要があります。
StatusBufferSize は 0 に設定する必要があります。
転送拡張機能は、NDIS_SWITCH_NIC_STATUS_INDICATION 構造体を初期化します。 VF 割り当てを削除するには、転送拡張機能で次のようにメンバーを設定する必要があります。
DestinationPortId メンバーは、VM ネットワーク アダプターが接続されている拡張可能スイッチ ポートの識別子に設定する必要があります。
DestinationNicIndex メンバーは、指定されたポートに接続されている VM ネットワーク アダプターのインデックス値に設定する必要があります。
SourcePortId メンバーを NDIS_SWITCH_DEFAULT_PORT_IDに設定する必要があります。
SourceNicIndex メンバーを NDIS_SWITCH_DEFAULT_NIC_INDEXに設定する必要があります。
StatusIndication メンバーは、NDIS_STATUS_SWITCH_PORT_REMOVE_VF 表示の NDIS_STATUS_INDICATION 構造体のアドレスに設定する必要があります。
転送拡張機能は、NDIS_SWITCH_NIC_STATUS_INDICATION 表示の NDIS_STATUS_INDICATION 構造体を初期化します。 この場合、転送拡張機能は、NDIS_STATUS_INDICATION 構造体の次のメンバーを設定します。
StatusCode メンバーを NDIS_STATUS_SWITCH_NIC_STATUSに設定する必要があります。
StatusBuffer メンバーは、NDIS_SWITCH_NIC_STATUS_INDICATION 構造体のアドレスに設定する必要があります。
StatusBufferSize は、NDIS_SWITCH_NIC_STATUS_INDICATION 構造体の長さ (バイト単位) と、NDIS_STATUS_SWITCH_PORT_REMOVE_VF 表示の NDIS_STATUS_INDICATION 構造体に設定する必要があります。
転送拡張機能は、ReferenceSwitchNic を呼び出して、VM ネットワーク アダプターの参照カウンターをインクリメントする必要があります。 ReferenceSwitchNic がNDIS_STATUS_SUCCESSで完了しない場合、転送拡張機能は状態表示を転送してはなりません。
注 転送拡張機能が VM アダプターの OID_SWITCH_NIC_DISCONNECT セット要求を受信した場合、ReferenceSwitchNic呼び出したり、状態の表示を転送したりしてはなりません。
転送拡張機能 NdisFIndicateStatus を呼び出して、拡張可能スイッチ ドライバー スタック内の上にある拡張機能に NDIS_STATUS_INDICATION を転送します。 転送拡張機能は、この関数を呼び出すときに、StatusIndication パラメーターを、NDIS_STATUS_SWITCH_NIC_STATUS 表示の NDIS_STATUS_INDICATION 構造体へのポインターに設定します。
NdisFIndicateStatus戻った後、転送拡張機能は、DereferenceSwitchNic を呼び出して、VM ネットワーク アダプターの参照カウンターをデクリメントする必要があります。
注 転送拡張機能は、転送拡張機能が削除する各 VF 割り当ての前の手順に従う必要があります。
転送拡張機能がステータス表示を転送する方法の詳細については、「モジュールステータス表示のフィルタを参照してください。
VF 割り当てを決定するためのガイドライン
転送拡張機能は、OID_SWITCH_NIC_ARRAYの OID クエリ要求を発行することによって、仮想ネットワーク アダプターの現在の VF 割り当てを列挙できます。 この要求は、NDIS_SWITCH_NIC_PARAMETERS 構造体の配列を含む NDIS_SWITCH_NIC_ARRAY 構造体を返します。 各 NDIS_SWITCH_NIC_PARAMETERS 構造体は、次のいずれかの環境で公開されるネットワーク アダプターのパラメーターを指定します。
Hyper-V 親パーティションで実行される管理オペレーティング システム。
このオペレーティング システムで公開されているネットワーク アダプターは、NdisSwitchNicTypeExternal または ndisSwitchNicTypeInternal の NDIS_SWITCH_NIC_TYPE 列挙値 指定されます。
Hyper-V 子パーティションで実行されるゲスト オペレーティング システム。
このオペレーティング システムで公開されているネットワーク アダプターは、NdisSwitchNicTypeSynthetic または ndisSwitchNicTypeEmulated の NDIS_SWITCH_NIC_TYPE 列挙値で指定されます。
OID_SWITCH_NIC_ARRAY の OID クエリ要求がNDIS_STATUS_SUCCESSの状態で完了した場合、転送拡張機能は、返された配列内の各 NDIS_SWITCH_NIC_PARAMETERS 構造体を調べることによって VF の割り当てを決定できます。 NDIS_SWITCH_NIC_PARAMETERS 構造体の VFAssigned メンバーが TRUE 設定されている場合、NDIS_SWITCH_NIC_PARAMETERS 構造体に対応するネットワーク アダプターが VF に割り当てられます。
転送拡張機能は、NDIS_STATUS_SWITCH_PORT_REMOVE_VF 状態表示を発行することで割り当てを削除できます。 この場合、転送拡張機能は、NDIS_SWITCH_NIC_STATUS_INDICATION の DestinationPortId メンバーを、NDIS_SWITCH_NIC_PARAMETERS 構造体の PortId メンバーの値に設定する必要があります。
NDIS_STATUS_SWITCH_PORT_REMOVE_VF ステータス表示を発行する方法の詳細については、NDIS_STATUS_SWITCH_PORT_REMOVE_VF ステータス表示 を発行するためのガイドラインを参照してください。
必要条件
バージョン |
NDIS 6.30 以降でサポートされています。 |
ヘッダ |
Ndis.h (Ndis.h を含む) |
関連項目
NdisFIndicateStatusの