Msvm_ImageManagementService クラスの CompactVirtualHardDisk メソッド
仮想ハード ディスク ファイルを圧縮します。 圧縮とは、仮想ハード ディスクの未使用部分を解放するプロセスです。 仮想ハード ディスクは自動的にマウントされません。 この方法の使用制限については、「解説」を参照してください。
構文
uint32 CompactVirtualHardDisk(
[in] string Path,
[in] uint16 Mode,
[out] CIM_ConcreteJob REF Job
);
パラメーター
-
Path [in]
-
型: string
マージ ファイルの場所を指定する完全修飾パス。
-
モード [入力]
-
種類: uint16
コンパクト操作のモードを指定します。 これは、次のいずれかの値である必要があります。
-
Full (0)
-
クイック (1)
-
Retrim (2)
-
プリトリム (3)
-
Prezeroed (4)
ジョブ [out]
種類: CIM_ConcreteJob
ジョブへの参照 (タスクが完了した場合は Null にできます)。
戻り値
型: uint32
このメソッドは、次のいずれかの値を返すことができます。
-
エラーなしで完了 (0)
-
チェックされたメソッド パラメーター - ジョブの開始 (4096)
-
失敗 ( 32768)
-
アクセスが拒否されました (32769)
-
サポートされていません (32770)
-
状態が不明 (32771)
-
タイムアウト (32772)
-
パラメーターが無効です (32773)
-
システムが使用中 (32774)
-
この操作の無効な状態 (32775)
-
正しくないデータ型 (32776)
-
システムは使用できません (32777)
-
メモリ不足 (32778)
-
ファイルが見つかりません (32779)
注釈
この方法では、次の種類の仮想ハード ディスクのみを使用できます。
- VHDX を修正しました
- 動的 VHD
- 動的 VHDX
- 差分 VHD
- 差分 VHDX
MSVM_IMAGEMANAGEMENTSERVICE クラスへのアクセスは、UAC フィルター処理によって制限される場合があります。 詳細については、「 ユーザー アカウント制御と WMI」を参照してください。
例
次の C# の例では、仮想ハード ディスクを圧縮します。 参照されるユーティリティについては、「 仮想化サンプルの一般的なユーティリティ (V2)」を参照してください。
public enum VirtualHardDiskCompactMode
{
Full = 0,
Quick = 1,
Retrim = 2,
Pretrimmed = 3,
Prezeroed = 4
}
public static void CompactVirtualHardDisk(string vhdPath, VirtualHardDiskCompactMode compactMode)
{
ManagementScope scope = new ManagementScope(@"root\virtualization\v2", null);
ManagementObject imageService = Utility.GetServiceObject(scope, "Msvm_ImageManagementService");
ManagementBaseObject inParams = imageService.GetMethodParameters("CompactVirtualHardDisk");
inParams["Path"] = vhdPath;
inParams["Mode"] = compactMode;
ManagementBaseObject outParams = imageService.InvokeMethod("CompactVirtualHardDisk", inParams, null);
if ((UInt32)outParams["ReturnValue"] == ReturnCode.Started)
{
if (Utility.JobCompleted(outParams, scope))
{
Console.WriteLine("{0} was compacted successfully.", inParams["Path"]);
}
else
{
Console.WriteLine("Unable to compact {0}", inParams["Path"]);
}
}
else
{
Console.WriteLine("Compact {0} returned error {1}", inParams["Path"], outParams["ReturnValue"]);
}
inParams.Dispose();
outParams.Dispose();
imageService.Dispose();
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2012 [デスクトップ アプリのみ] |
名前空間 |
Root\Virtualization\V2 |
MOF |
|
[DLL] |
|