Freigeben über


ResizeVirtualHardDisk-Methode der Msvm_ImageManagementService-Klasse

Ändert die Größe einer vorhandenen virtuellen Festplatte. Die virtuelle Festplatte muss offline sein. Hinweise zu Nutzungseinschränkungen für diese Methode finden Sie unter Hinweise.

Syntax

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

Parameter

Pfad [in]

Typ: Zeichenfolge

Der vollqualifizierte Pfad der virtuellen Festplattendatei.

MaxInternalSize [in]

Typ: uint64

Die maximale Größe der virtuellen Festplatte, die vom virtuellen Computer in Bytes angezeigt werden kann. Der MaxInternalSize-Mindestwert ist DiskSize + 512 - (DiskSize mod 512). DiskSize ist die Größe der virtuellen Festplattendatei in Bytes. Der InvalidParameter-Fehler (32773) wird zurückgegeben, wenn der angegebene MaxInternalSize-Wert kleiner als der Mindestwert ist.

Auftrag [out]

Typ: CIM_ConcreteJob

Wenn der Vorgang asynchron ausgeführt wird, gibt diese Methode 4096 zurück, und dieser Parameter enthält einen Verweis auf ein von CIM_ConcreteJob abgeleitetes Objekt.

Rückgabewert

Typ: uint32

Diese Methode kann einen der folgenden Werte zurückgeben.

Ohne Fehler abgeschlossen (0)

Methodenparameter überprüft – Auftrag gestartet (4096)

Fehler (32768)

Zugriff verweigert (32769)

Nicht unterstützt (32770)

Status ist unbekannt (32771)

Timeout (32772)

Ungültiger Parameter (32773)

System wird verwendet (32774)

Ungültiger Zustand für diesen Vorgang (32775)

Falscher Datentyp (32776)

System ist nicht verfügbar (32777)

Nicht genügend Arbeitsspeicher (32778)

Datei wurde nicht gefunden (32779)

Bemerkungen

Nur die folgenden Typen von virtuellen Festplatten können mit dieser Methode verwendet werden, wenn die Größe der virtuellen Festplatte erhöht wird:

  • Behobene VHD
  • VHDX wurde behoben
  • Dynamische VHD
  • Dynamische VHDX
  • Differenzierende VHDX

Nur die folgenden Typen von virtuellen Festplatten können mit dieser Methode verwendet werden, wenn die Größe der virtuellen Festplatte verringert wird:

  • VHDX wurde behoben
  • Dynamische VHDX
  • Differenzierende VHDX

Der Zugriff auf die Msvm_ImageManagementService-Klasse kann durch die UAC-Filterung eingeschränkt werden. Weitere Informationen finden Sie unter Benutzerkontensteuerung und WMI.

Beispiele

Im folgenden C#-Beispiel wird eine virtuelle Festplattendatei erweitert. Die referenzierten Hilfsprogramme finden Sie unter Allgemeine Hilfsprogramme für die Virtualisierungsbeispiele (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();
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2012 [nur Desktop-Apps]
Namespace
Stamm\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

Siehe auch

CIM_ConcreteJob

Msvm_ImageManagementService