Msvm_ImageManagementService クラスの MergeVirtualHardDisk メソッド
差分チェーン内の子仮想ハード ディスクを、チェーン内の 1 つ以上の親仮想ハード ディスクとマージします。 この方法の使用制限については、「解説」を参照してください。
この関数を実行しているユーザーに仮想マシンを更新するアクセス許可がない場合、この関数は失敗します。
構文
uint32 MergeVirtualHardDisk(
[in] string SourcePath,
[in] string DestinationPath,
[out] CIM_ConcreteJob REF Job
);
パラメーター
-
SourcePath [in]
-
型: string
マージする仮想ハード ディスク ファイルの場所を指定する完全修飾パス。
-
DestinationPath [in]
-
型: string
データをマージする親仮想ハード ディスク ファイルの場所を指定する完全修飾パス。 これは、マージ ファイルの直接の親仮想ハード ディスクか、差分チェーンの数レベル上の親ディスク イメージである可能性があります。
-
ジョブ [out]
-
種類: CIM_ConcreteJob
操作が非同期に実行された場合、このメソッドは 4096 を返し、このパラメーターには CIM_ConcreteJob から派生したオブジェクトへの参照が含 まれます。
戻り値
型: uint32
このメソッドは、次のいずれかの値を返すことができます。
-
エラーなしで完了 (0)
-
チェックされたメソッド パラメーター - ジョブの開始 (4096)
-
失敗 ( 32768)
-
アクセスが拒否されました (32769)
-
サポートされていません (32770)
-
状態が不明 (32771)
-
タイムアウト (32772)
-
パラメーターが無効です (32773)
-
システムが使用中 (32774)
-
この操作の無効な状態 (32775)
-
正しくないデータ型 (32776)
-
システムは使用できません (32777)
-
メモリ不足 (32778)
-
ファイルが見つかりません (32779)
注釈
子仮想ハード ディスクはオフラインである必要があります。
この方法では、次の種類の仮想ハード ディスクのみを使用できます。
- 差分 VHD
- 差分 VHDX
MSVM_IMAGEMANAGEMENTSERVICE クラスへのアクセスは、UAC フィルター処理によって制限される場合があります。 詳細については、「 ユーザー アカウント制御と WMI」を参照してください。
例
次の C# の例では、仮想ハード ディスク ファイルを展開します。 参照されるユーティリティについては、「 仮想化サンプルの一般的なユーティリティ (V2)」を参照してください。
// Merges a VHD into a parent VHD.
// ChildPath: The path to the VHD to merge.</param>
// ParentPath: The path to the parent into which to merge.</param>
public static void MergeVirtualHardDisk(string ChildPath, string ParentPath)
{
ManagementScope scope = new ManagementScope(@"root\virtualization\v2", null);
ManagementObject imageService = Utility.GetServiceObject(scope, "Msvm_ImageManagementService");
ManagementBaseObject inParams = imageService.GetMethodParameters("MergeVirtualHardDisk");
inParams["SourcePath"] = ChildPath;
inParams["DestinationPath"] = ParentPath;
ManagementBaseObject outParams = imageService.InvokeMethod("MergeVirtualHardDisk", inParams, null);
if ((UInt32)outParams["ReturnValue"] == ReturnCode.Started)
{
if (Utility.JobCompleted(outParams, scope))
{
Console.WriteLine("MergeVirtualHardDisk succeeded.");
}
else
{
Console.WriteLine("MergeVirtualHardDisk failed.");
}
}
outParams.Dispose();
inParams.Dispose();
imageService.Dispose();
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2012 [デスクトップ アプリのみ] |
名前空間 |
Root\Virtualization\V2 |
MOF |
|
[DLL] |
|