Método ResizeVirtualHardDisk da classe Msvm_ImageManagementService
Redimensiona um disco rígido virtual existente. O disco rígido virtual deve estar offline. Consulte Comentários sobre restrições de uso para este método.
Sintaxe
uint32 ResizeVirtualHardDisk(
[in] string Path,
[in] uint64 MaxInternalSize,
[out] CIM_ConcreteJob REF Job
);
Parâmetros
-
Caminho [in]
-
Tipo: cadeia de caracteres
O caminho totalmente qualificado do arquivo de disco rígido virtual.
-
MaxInternalSize [in]
-
Tipo: uint64
O tamanho máximo do disco rígido virtual como acessível pela máquina virtual, em bytes. O valor mínimo de MaxInternalSize é DiskSize + 512 – (DiskSize mod 512). DiskSize é o tamanho do arquivo de disco rígido virtual, em bytes. O erro InvalidParameter (32773) será retornado se o valor MaxInternalSize especificado for menor que o valor mínimo.
-
Trabalho [out]
-
Tipo: CIM_ConcreteJob
Se a operação for executada de forma assíncrona, esse método retornará 4096 e esse parâmetro conterá uma referência a um objeto derivado de CIM_ConcreteJob.
Valor retornado
Tipo: uint32
Esse método pode retornar um dos valores a seguir.
-
Concluído sem erro (0)
-
Parâmetros de método verificados – Trabalho iniciado (4096)
-
Falha (32768)
-
Acesso negado (32769)
-
Sem suporte (32770)
-
O status é desconhecido (32771)
-
Tempo limite (32772)
-
Parâmetro inválido (32773)
-
O sistema está em uso (32774)
-
Estado inválido para esta operação (32775)
-
Tipo de dados incorreto (32776)
-
O sistema não está disponível (32777)
-
Sem memória (32778)
-
Arquivo não encontrado (32779)
Comentários
Somente os seguintes tipos de discos rígidos virtuais podem ser usados com esse método quando o tamanho do disco rígido virtual está sendo aumentado:
- VHD fixo
- Correção do VHDX
- VHD dinâmico
- VHDX dinâmico
- VHDX de diferenciação
Somente os seguintes tipos de discos rígidos virtuais podem ser usados com esse método quando o tamanho do disco rígido virtual está sendo reduzido:
- Correção do VHDX
- VHDX dinâmico
- VHDX de diferenciação
O acesso à classe Msvm_ImageManagementService pode ser restrito pela Filtragem UAC. Para obter mais informações, consulte Controle de Conta de Usuário e WMI.
Exemplos
O exemplo de C# a seguir expande um arquivo de disco rígido virtual. Os utilitários referenciados podem ser encontrados em utilitários comuns para os exemplos de virtualização (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();
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 8 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows Server 2012 [somente aplicativos da área de trabalho] |
Namespace |
Root\Virtualization\V2 |
MOF |
|
DLL |
|