Freigeben über


MergeVirtualHardDisk-Methode der Msvm_ImageManagementService-Klasse

Führt eine untergeordnete virtuelle Festplatte in einer differenzierenden Kette mit einer oder mehreren übergeordneten virtuellen Festplatten in der Kette zusammen. Hinweise zu Nutzungseinschränkungen für diese Methode finden Sie unter Hinweise.

Wenn der Benutzer, der diese Funktion ausführt, nicht über die Berechtigung zum Aktualisieren der virtuellen Computer verfügt, schlägt diese Funktion fehl.

Syntax

uint32 MergeVirtualHardDisk(
  [in]  string              SourcePath,
  [in]  string              DestinationPath,
  [out] CIM_ConcreteJob REF Job
);

Parameter

SourcePath [in]

Typ: Zeichenfolge

Ein vollqualifizierter Pfad, der den Speicherort der zu zusammenzuführenden virtuellen Festplattendatei angibt.

DestinationPath [in]

Typ: Zeichenfolge

Ein vollqualifizierter Pfad, der den Speicherort der übergeordneten virtuellen Festplattendatei angibt, in der Daten zusammengeführt werden sollen. Dies kann die unmittelbare übergeordnete virtuelle Festplatte der zusammenführenden Datei oder das übergeordnete Datenträgerimage sein, das einige Ebenen höher in der Differenzierungskette verläuft.

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

Die untergeordnete virtuelle Festplatte muss offline sein.

Mit dieser Methode können nur die folgenden Typen virtueller Festplatten verwendet werden:

  • 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 Festplattendatei erweitert. Die referenzierten Hilfsprogramme finden Sie unter Allgemeine Hilfsprogramme für die Virtualisierungsbeispiele (V2).

// Merges a VHD into a parent VHD.
// ChildPath: The path to the VHD to merge.</param>
// ParentPath: The path to the parent into which to merge.</param>
public static void MergeVirtualHardDisk(string ChildPath, string ParentPath)
{
    ManagementScope scope = new ManagementScope(@"root\virtualization\v2", null);
    ManagementObject imageService = Utility.GetServiceObject(scope, "Msvm_ImageManagementService");

    ManagementBaseObject inParams = imageService.GetMethodParameters("MergeVirtualHardDisk");

    inParams["SourcePath"] = ChildPath;
    inParams["DestinationPath"] = ParentPath;

    ManagementBaseObject outParams = imageService.InvokeMethod("MergeVirtualHardDisk", inParams, null);

    if ((UInt32)outParams["ReturnValue"] == ReturnCode.Started)
    {
        if (Utility.JobCompleted(outParams, scope))
        {
            Console.WriteLine("MergeVirtualHardDisk succeeded.");
        }
        else
        {
            Console.WriteLine("MergeVirtualHardDisk failed.");
        }
    }

    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