次の方法で共有


Hyper-V 拡張可能スイッチの保存操作

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

Hyper-V 子パーティションで保存操作が実行されている場合、拡張可能スイッチ インターフェイスは操作について拡張機能に通知します。 拡張機能は、次のオブジェクト識別子 (OID) 要求を通じて通知されます。

OID_SWITCH_NIC_SAVE
拡張可能スイッチ インターフェイスは、拡張可能スイッチ NIC の保存操作中にこの OID を発行する拡張可能スイッチのプロトコル エッジを通知します。 この OID 要求を処理すると、拡張機能は NIC の実行時データを返します。 実行時データが保存されると、OID_SWITCH_NIC_RESTOREの OID セット要求を通じて復元されます。

OID_SWITCH_NIC_SAVE メソッド要求を受け取ると、拡張機能は次のいずれかを実行できます。

  • 拡張機能に保存する実行時データがある場合は、 NDIS_SWITCH_NIC_SAVE_STATE 構造体を初期化し、 ExtensionId メンバーなどのさまざまなメンバーを設定して、それ自体と保存するデータを識別します。 また、この拡張機能は、構造の先頭から SaveDataOffset バイトを開始する NDIS_SWITCH_NIC_SAVE_STATE 構造体内にデータを保存し、NDIS_STATUS_SUCCESSを使用して OID メソッド要求を完了します。

  • NDIS_SWITCH_NIC_SAVE_STATE構造体が、NDIS_OBJECT_HEADER Size メンバーに列挙された実行時状態を保持するのに十分なバッファーサイズを提供しない場合、拡張機能はメソッド構造体のBytesNeededフィールドに、NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1に加えて、保存データを保持するために必要なバッファー量を設定し、NDIS_STATUS_BUFFER_TOO_SHORTにてOIDを完了します。 OID は必要なサイズで再発行されます。

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

この OID 要求の詳細については、「 OID_SWITCH_NIC_SAVE要求の処理」を参照してください。

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

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

この OID 要求の詳細については、「 OID_SWITCH_NIC_SAVE_COMPLETE要求の処理」を参照してください。

実行時データの保存操作中に、拡張可能スイッチのプロトコル エッジは、 OID_SWITCH_NIC_SAVE の OID 要求を発行し、Hyper-V 子パーティションのネットワーク インターフェイスのOID_SWITCH_NIC_SAVE_COMPLETEが接続されます。 複数の Hyper-V 子パーティションが停止またはライブ マイグレーションされた場合、プロトコル エッジは、ネットワーク インターフェイス接続ごとに個別のOID_SWITCH_NIC_SAVEとOID_SWITCH_NIC_SAVE_COMPLETE要求のセットを発行します。

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