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要求の処理」を参照してください。
ランタイム データの復元操作中に、拡張可能スイッチのプロトコル エッジは、Hyper-V 子パーティションの ネットワーク インターフェイスに対する OID_SWITCH_NIC_SAVE と OID_SWITCH_NIC_SAVE_COMPLETE の OID 要求を発行します。 複数の Hyper-V 子パーティションが停止またはライブ マイグレーションされた場合、プロトコル エッジは、ネットワーク インターフェイス接続ごとに個別のOID_SWITCH_NIC_SAVEとOID_SWITCH_NIC_SAVE_COMPLETE要求のセットを発行します。
注: 拡張可能スイッチのプロトコル エッジは、同じ NIC の実行時データの保存操作をインターリーブしません。 プロトコル エッジは、同じ NIC で以前の保存操作が完了した後にのみ、NIC の実行時データ保存操作を開始します。 ただし、プロトコル エッジは、別の NIC に対して別の保存操作が進行中である間に、NIC の保存操作を開始する可能性があります。 このため、拡張機能では、インタリーブ以外の方法で保存操作を実行することを強くお勧めします。 たとえば、拡張機能では、別の NIC に対して進行中の保存操作が完了する前に、別の NIC で新しい保存操作を開始できないと想定しないでください。