CompactVirtualHardDisk-Methode der Msvm _ ImageManagementService-Klasse
Komprimiert eine virtuelle Festplattendatei. Komprimierung ist der Prozess, bei dem ungenutzte Teile der virtuellen Festplatte freigegeben werden. Die virtuelle Festplatte wird nicht automatisch eingebunden. Informationen zu Verwendungseinschränkungen für diese Methode finden Sie unter Hinweise.
Syntax
uint32 CompactVirtualHardDisk(
[in] string Path,
[in] uint16 Mode,
[out] CIM_ConcreteJob REF Job
);
Parameter
-
Pfad [ In]
-
Typ: Zeichenfolge
Ein vollqualifizierten Pfad, der den Speicherort der zusammenführenden Datei angibt.
-
Modus [ In]
-
Typ: uint16
Gibt den Modus für den Kompaktvorgang an. Dies muss einer der folgenden Werte sein.
-
Vollständig (0)
-
Schnell (1)
-
Wiederholung (2)
-
Pretrimmed (3)
-
Vorzerriert (4)
Auftrag [ out]
Typ: CIM _ ConcreteJob
Ein Verweis auf den Auftrag (kann NULL sein, wenn der Task abgeschlossen ist).
Rückgabewert
Typ: uint32
Diese Methode kann einen der folgenden Werte zurückgeben.
-
Abgeschlossen ohne Fehler (0)
-
Überprüfte Methodenparameter – Auftragsstart (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 nicht gefunden (32779)
Hinweise
Mit dieser Methode können nur die folgenden Arten von virtuellen Festplatten verwendet werden:
- VHDX korrigiert
- Dynamische VHD
- Dynamische VHDX
- Differenzierende VHD
- 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 Festplatte komprimiert. Die referenzierten Hilfsprogramme finden Sie unter Allgemeine Hilfsprogramme für die Virtualisierungsbeispiele (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();
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
[Windows 8 Nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
[Windows Server 2012 Nur Desktop-Apps] |
| Namespace |
Root \ Virtualization \ V2 |
| MOF |
|
| DLL |
|