Compartir a través de


Método ResizeVirtualHardDisk de la clase Msvm_ImageManagementService

Cambia el tamaño de un disco duro virtual existente. El disco duro virtual debe estar sin conexión. Consulte Comentarios para conocer las restricciones de uso de este método.

Sintaxis

uint32 ResizeVirtualHardDisk(
  [in]  string              Path,
  [in]  uint64              MaxInternalSize,
  [out] CIM_ConcreteJob REF Job
);

Parámetros

Ruta de acceso [in]

Tipo: cadena

Ruta de acceso completa del archivo de disco duro virtual.

MaxInternalSize [in]

Tipo: uint64

Tamaño máximo del disco duro virtual que la máquina virtual puede ver, en bytes. MaxInternalSize el valor mínimo es DiskSize + 512 - (DiskSize mod 512). DiskSize es el tamaño del archivo de disco duro virtual, en bytes. Se devuelve el error InvalidParameter (32773) si el valor MaxInternalSize especificado es menor que el valor mínimo.

Trabajo [salida]

Tipo: CIM_ConcreteJob

Si la operación se realiza de forma asincrónica, este método devolverá 4096 y este parámetro contendrá una referencia a un objeto derivado de CIM_ConcreteJob.

Valor devuelto

Tipo: uint32

Este método puede devolver uno de los siguientes valores.

Completado sin error (0)

Parámetros de método comprobados: trabajo iniciado (4096)

Error (32768)

Acceso denegado (32769)

No compatible (32770)

El estado es desconocido (32771)

Tiempo de espera (32772)

Parámetro no válido (32773)

El sistema está en uso (32774)

Estado no válido para esta operación (32775)

Tipo de datos incorrecto (32776)

El sistema no está disponible (32777)

Memoria insuficiente (32778)

Archivo no encontrado (32779)

Comentarios

Solo se pueden usar los siguientes tipos de discos duros virtuales con este método cuando se aumenta el tamaño del disco duro virtual:

  • Disco duro virtual corregido
  • VHDX corregido
  • VHD dinámico
  • VHDX dinámico
  • Diferenciación de VHDX

Solo se pueden usar los siguientes tipos de discos duros virtuales con este método cuando se reduce el tamaño del disco duro virtual:

  • VHDX corregido
  • VHDX dinámico
  • Diferenciación de VHDX

El filtrado UAC puede restringir el acceso a la clase Msvm_ImageManagementService . Para obtener más información, consulte Control de cuentas de usuario y WMI.

Ejemplos

En el ejemplo de C# siguiente se expande un archivo de disco duro virtual. Las utilidades a las que se hace referencia se pueden encontrar en Utilidades comunes para los ejemplos de virtualización (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 Value
Cliente mínimo compatible
Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2012 [solo aplicaciones de escritorio]
Espacio de nombres
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
Archivo DLL
Vmms.exe

Consulte también

CIM_ConcreteJob

Msvm_ImageManagementService