Método CompactVirtualHardDisk da classe Msvm_ImageManagementService
Compacta um arquivo de disco rígido virtual. Compactação é o processo de liberar partes não utilizadas do disco rígido virtual. O disco rígido virtual não é montado automaticamente. Consulte Comentários sobre restrições de uso para este método.
Sintaxe
uint32 CompactVirtualHardDisk(
[in] string Path,
[in] uint16 Mode,
[out] CIM_ConcreteJob REF Job
);
Parâmetros
-
Caminho [in]
-
Tipo: cadeia de caracteres
Um caminho totalmente qualificado que especifica o local do arquivo de mesclagem.
-
Modo [in]
-
Tipo: uint16
Especifica o modo para a operação compacta. Esse deve ser um dos valores a seguir.
-
Completo (0)
-
Rápido (1)
-
Repetição (2)
-
Pré-configurado (3)
-
Pré-zero (4)
Trabalho [out]
Tipo: CIM_ConcreteJob
Uma referência ao trabalho (pode ser Null se a tarefa for concluída).
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)
-
Memória insuficiente (32778)
-
Arquivo não encontrado (32779)
Comentários
Somente os seguintes tipos de discos rígidos virtuais podem ser usados com este método:
- Corrigido O VHDX
- VHD dinâmico
- VHDX dinâmico
- VHD diferencial
- 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 compacta um disco rígido virtual. Os utilitários referenciados podem ser encontrados em Utilitários comuns para os exemplos de virtualização (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();
}
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 |
|