次の方法で共有


Hyper-V 拡張可能スイッチの復元操作

Hyper-V 子パーティションが停止またはライブ マイグレーションされた後に再起動されると、そのパーティションの実行時の状態が復元されます。 復元操作中、Hyper-V 拡張可能スイッチ拡張ドライバーは、拡張可能スイッチ ネットワーク アダプター (NIC) に関する実行時データを復元できます。

Hyper-V 子パーティションで復元操作が実行されている場合、拡張可能スイッチ インターフェイスは、拡張可能スイッチのプロトコル エッジに通知して 、OID_SWITCH_NIC_RESTOREの OID セット要求を発行します。 OID_SWITCH_NIC_RESTORE要求のNDIS_OID_REQUEST構造体の InformationBuffer メンバーには、NDIS_SWITCH_NIC_SAVE_STATE構造体へのポインターが含まれています。

この OID 要求を処理すると、拡張機能はネットワーク アダプターの実行時データを復元します。 この実行時データは、OID_SWITCH_NIC_SAVEと OID_SWITCH_NIC_SAVE_COMPLETE の OID 要求によって以前に保存されていました。

OID_SWITCH_NIC_RESTORE要求を受け取ると、拡張可能スイッチ拡張機能は、最初にランタイム データを所有しているかどうかを判断する必要があります。 ドライバーは、NDIS_SWITCH_NIC_SAVE_STATE構造体の ExtensionId メンバーの値を、ドライバーが自身を識別するために使用する GUID 値と比較することによってこれを行います。

拡張機能がランタイム データを所有している場合、このデータは次のように復元されます。

  1. 拡張機能は、 SaveData メンバーの実行時データをドライバー割り当てストレージにコピーします。

    NDIS_SWITCH_NIC_SAVE_STATE 構造体の PortId メンバーの値は、実行時データが保存された時点の PortId 値と異なる場合があります。 これは、あるホストから別のホストへのライブ マイグレーション中に実行時データが保存された場合に発生する可能性があります。 ただし、拡張可能スイッチ NIC の構成は、ライブ マイグレーション中に保持されます。 これにより、拡張機能は、新しい PortId 値を使用して、拡張可能スイッチ NIC にランタイム データを復元できます。

  2. 拡張機能は、NDIS_STATUS_SUCCESSを使用して OID セット要求を完了します。

拡張機能がランタイム データを所有していない場合は、 NdisFOidRequest を呼び出す必要があります。 これにより、OID メソッド要求が拡張可能スイッチ ドライバー スタック内の基になる拡張機能に転送されます。 この手順の詳細については、NDIS フィルター ドライバー の OID 要求のフィルター処理を参照してください。

OID_SWITCH_NIC_RESTORE_COMPLETE
拡張可能スイッチ インターフェイスは、拡張可能スイッチ NIC の実行時データの復元操作の完了時にこの OID を発行する拡張可能スイッチのプロトコル エッジを通知します。

この OID 要求は、指定された拡張可能スイッチ NIC に対してのみ復元操作が完了したことを拡張機能に通知します。

この OID 要求の詳細については、 OID_SWITCH_NIC_RESTORE_COMPLETEを参照してください。

ランタイム データの復元操作中に、拡張可能スイッチのプロトコル エッジは 、OID_SWITCH_NIC_RESTORE の OID 要求を発行し、 Hyper-V 子パーティションのネットワーク インターフェイスにOID_SWITCH_NIC_RESTORE_COMPLETEが接続されます。 複数の Hyper-V 子パーティションが復元された場合、プロトコル エッジは、ネットワーク インターフェイス接続ごとに個別のOID_SWITCH_NIC_RESTOREとOID_SWITCH_NIC_RESTORE_COMPLETE要求のセットを発行します。

手記 拡張可能スイッチのプロトコル エッジは、同じ NIC の実行時データの復元操作をインターリーブしません。 プロトコル エッジは、同じ NIC で以前の復元操作が完了した後にのみ、NIC の実行時データ復元操作を開始します。 ただし、プロトコル エッジは、別の NIC に対して別の復元操作が進行中である間に、NIC の復元操作を開始する可能性があります。 このため、拡張機能では、インタリーブ以外の方法で復元操作を実行することを強くお勧めします。 たとえば、拡張機能では、別の NIC に対して進行中の復元操作が完了する前に、別の NIC で新しい復元操作を開始できないと想定しないでください。

この OID 要求の詳細については、「拡張可能スイッチ Hyper-V データ Run-Time 復元」を参照してください。