Msvm_ImageManagementService クラスの ResizeVirtualHardDisk メソッド
既存の仮想ハード ディスクのサイズを変更します。 仮想ハード ディスクはオフラインである必要があります。 この方法の使用制限については、「解説」を参照してください。
構文
uint32 ResizeVirtualHardDisk(
[in] string Path,
[in] uint64 MaxInternalSize,
[out] CIM_ConcreteJob REF Job
);
パラメーター
-
パス [入力]
-
型: string
仮想ハード ディスク ファイルの完全修飾パス。
-
MaxInternalSize [in]
-
型: uint64
仮想マシンで表示できる仮想ハード ディスクの最大サイズ (バイト単位)。 MaxInternalSize の 最小値は DiskSize + 512 - (DiskSize mod 512) です。 DiskSize は、仮想ハード ディスク ファイルのサイズ (バイト単位) です。 指定された MaxInternalSize 値が最小値より小さい場合、InvalidParameter エラー (32773) が返されます。
-
ジョブ [出力]
-
種類: CIM_ConcreteJob
操作が非同期的に実行される場合、このメソッドは 4096 を返し、このパラメーターには CIM_ConcreteJob から派生したオブジェクトへの参照が含まれます。
戻り値
型: uint32
このメソッドは、次のいずれかの値を返すことができます。
-
エラーなしで完了 しました (0)
-
チェックされたメソッド パラメーター - ジョブの開始 (4096)
-
失敗 ( 32768)
-
アクセスが拒否されました (32769)
-
サポートされていません (32770)
-
状態が不明 (32771)
-
タイムアウト (32772)
-
無効なパラメーター (32773)
-
システムが使用中 (32774)
-
この操作の無効な状態 (32775)
-
正しくないデータ型 (32776)
-
システムを使用できません (32777)
-
メモリ不足 (32778)
-
ファイルが見つかりません (32779)
解説
この方法では、仮想ハード ディスクのサイズを大きくするときに、次の種類の仮想ハード ディスクのみを使用できます。
- 固定 VHD
- VHDX を修正しました
- 動的 VHD
- 動的 VHDX
- 差分 VHDX
この方法では、仮想ハード ディスクのサイズを小さくするときに、次の種類の仮想ハード ディスクのみを使用できます。
- VHDX を修正しました
- 動的 VHDX
- 差分 VHDX
MSVM_IMAGEMANAGEMENTSERVICE クラスへのアクセスは、UAC フィルター処理によって制限される場合があります。 詳細については、「 ユーザー アカウント制御と WMI」を参照してください。
例
次の C# の例では、仮想ハード ディスク ファイルを展開します。 参照されるユーティリティについては、「 仮想化サンプルの一般的なユーティリティ (V2)」を参照してください。
const UInt64 size1G = 0x40000000;
public static void ResizeVirtualHardDisk(string path, UInt64 maxInternalSize)
{
ManagementScope scope = new ManagementScope(@"root\virtualization\V2", null);
ManagementObject imageService = Utility.GetServiceObject(scope, "Msvm_ImageManagementService");
ManagementBaseObject inParams = imageService.GetMethodParameters("ResizeVirtualHardDisk");
inParams["Path"] = path;
inParams["MaxInternalSize"] = maxInternalSize * size1G;
ManagementBaseObject outParams = imageService.InvokeMethod("ResizeVirtualHardDisk", inParams, null);
if ((UInt32)outParams["ReturnValue"] == ReturnCode.Started)
{
if (Utility.JobCompleted(outParams, scope))
{
Console.WriteLine("{0} was resized successfully.", inParams["Path"]);
}
else
{
Console.WriteLine("Unable to resize {0}", inParams["Path"]);
}
}
outParams.Dispose();
inParams.Dispose();
imageService.Dispose();
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2012 [デスクトップ アプリのみ] |
名前空間 |
Root\Virtualization\V2 |
MOF |
|
[DLL] |
|