Compartilhar via


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
WindowsVirtualization.V2.mof
DLL
Vmms.exe

Confira também

CIM_ConcreteJob

Msvm_ImageManagementService