WHvStartPartitionMigration

ソース ホスト上のパーティションの移行を開始します。

構文

HRESULT
WINAPI
WHvStartPartitionMigration(
    _In_ WHV_PARTITION_HANDLE Partition,
    _Out_ HANDLE* MigrationHandle
    );

Parameters

Partition

移行するパーティション オブジェクトへのハンドル。

MigrationHandle

進行中の移行を表すハンドルを受け取ります。 ソース プロセスは、このハンドルを宛先プロセスに転送し、パーティションを受け取る WHvAcceptPartitionMigration に渡します。

戻り値

関数が成功した場合、戻り値は S_OK

パーティションが既に移行に関係している場合、関数は HRESULT_FROM_WIN32(ERROR_INVALID_STATE)を返します。

Remarks

WHvStartPartitionMigration関数は、パーティション移行のソース側を開始します。 パーティションの状態、プロパティ、仮想プロセッサ、ドアベル、仮想 PCI デバイスをシリアル化し、必要なハンドルと共に宛先プロセスに送信します。 送信先ホストが WHvAcceptPartitionMigrationを使用してパーティションを受け入れるまで、送信操作は保留中のままになります。

この呼び出しが成功すると、パーティションは、既にシリアル化された状態を無効にする操作がブロックされる移行状態になります。 この時点から、ソースは WHvCompletePartitionMigration で移行を完了するか、 WHvCancelPartitionMigrationで中止する必要があります。 WHvDeletePartitionでパーティションを削除すると、移行も取り消されます。

MigrationHandleで返されるハンドルは、標準的な Win32 ハンドルです。 ソース プロセスは、適切な方法 (重複の処理など) によって転送先プロセスに転送する役割を担います。 WHvAcceptPartitionMigration は、成功したときに宛先側のハンドルを閉じます。

一般的な移行シーケンスは次のとおりです。

  1. ソースは WHvStartPartitionMigration を呼び出して移行を開始し、 MigrationHandleを取得します。
  2. 転送先は、転送されたハンドルを使用して WHvAcceptPartitionMigration を呼び出して、ターゲット パーティションを作成します。
  3. ソースは WHvCompletePartitionMigration を呼び出して、ソース パーティションの最終処理と解放を行います。
  4. 宛先は WHvSetupPartition を呼び出してターゲットの移行を完了し、通常の操作を再開します。

Requirements

要件 価値
サポートされている最小Windows Windows 10バージョン 20H2 (x64);Windows 11、バージョン 24H2、ビルド 26100.3915 (Arm64)
Header WinHvPlatform.h
図書館 WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64、Arm64

こちらも参照ください