Share via


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

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

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

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

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

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

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

    PortId メンバー NDIS_SWITCH_NIC_SAVE_STATE 構造体の値は、ランタイムデータが保存された時点の 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 を参照してください。

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

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

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