Méthode MergeVirtualHardDisk de la _ classe ImageManagementService MSVM
Fusionne un disque dur virtuel enfant dans une chaîne de différenciation avec un ou plusieurs disques durs virtuels parents dans la chaîne. Consultez la section Notes pour connaître les restrictions d’utilisation de cette méthode.
Si l’utilisateur qui exécute cette fonction n’a pas l’autorisation de mettre à jour les ordinateurs virtuels, cette fonction échoue.
Syntaxe
uint32 MergeVirtualHardDisk(
[in] string SourcePath,
[in] string DestinationPath,
[out] CIM_ConcreteJob REF Job
);
Paramètres
-
SourcePath [ dans]
-
Type : chaîne
Chemin qualifié complet qui spécifie l’emplacement du fichier de disque dur virtuel à fusionner.
-
DestinationPath [ dans]
-
Type : chaîne
Chemin d’accès complet qui spécifie l’emplacement du fichier de disque dur virtuel parent dans lequel les données doivent être fusionnées. Il peut s’agir du disque dur virtuel parent immédiat du fichier de fusion ou de l’image de disque parent, à un niveau allant jusqu’à la chaîne de différenciation.
-
Travail [ à]
-
Type : CIM _ ConcreteJob
Si l’opération est effectuée de façon asynchrone, cette méthode retourne 4096 et ce paramètre contient une référence à un objet dérivé de CIM _ ConcreteJob.
Valeur retournée
Type : UInt32
Cette méthode peut retourner l’une des valeurs suivantes.
-
Terminé sans erreur (0)
-
Paramètres de méthode activés-tâche démarrée (4096)
-
Échec (32768)
-
Accès refusé (32769)
-
Non pris en charge (32770)
-
État inconnu (32771)
-
Délai d’expiration (32772)
-
Paramètre non valide (32773)
-
Le système est en cours d’utilisation (32774)
-
État non valide pour cette opération (32775)
-
Type de données incorrect (32776)
-
Le système n’est pas disponible (32777)
-
Mémoire insuffisante (32778)
-
Fichier introuvable (32779)
Remarques
Le disque dur virtuel enfant doit être hors connexion.
Seuls les types de disques durs virtuels suivants peuvent être utilisés avec cette méthode :
- Disque dur virtuel de différenciation
- VHDX de différenciation
L’accès à la classe MSVM _ ImageManagementService peut être limité par le filtrage UAC. Pour plus d’informations, consultez contrôle de compte d’utilisateur et WMI.
Exemples
L’exemple C# suivant développe un fichier de disque dur virtuel. Les utilitaires référencés se trouvent dans les utilitaires courants pour les exemples de virtualisation (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();
}
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows 8 [ applications de bureau uniquement] |
| Serveur minimal pris en charge |
Windows Server 2012 [ applications de bureau uniquement] |
| Espace de noms |
\Virtualisation racine \ v2 |
| MOF |
|
| DLL |
|