Метод MergeVirtualHardDisk класса Msvm_ImageManagementService
Объединяет дочерний виртуальный жесткий диск в разностную цепочку с одним или несколькими родительскими виртуальными жесткими дисками в цепочке. Ограничения использования для этого метода см. в разделе Примечания.
Если пользователь, выполняющий эту функцию, не имеет разрешения на обновление виртуальных машин, эта функция завершится ошибкой.
Синтаксис
uint32 MergeVirtualHardDisk(
[in] string SourcePath,
[in] string DestinationPath,
[out] CIM_ConcreteJob REF Job
);
Параметры
-
SourcePath [in]
-
Тип: string
Полный путь, указывающий расположение файла виртуального жесткого диска для слияния.
-
DestinationPath [in]
-
Тип: string
Полный путь, указывающий расположение родительского файла виртуального жесткого диска, в который необходимо объединить данные. Это может быть непосредственный родительский виртуальный жесткий диск объединяемого файла или образ родительского диска на несколько уровней выше разностной цепочки.
-
Задание [out]
-
Тип: CIM_ConcreteJob
Если операция выполняется асинхронно, этот метод возвращает значение 4096, а этот параметр будет содержать ссылку на объект, производный от CIM_ConcreteJob.
Возвращаемое значение
Тип: uint32
Этот метод может возвращать одно из следующих значений.
-
Выполнено без ошибок (0)
-
Проверенные параметры метода — задание запущено (4096)
-
Сбой (32768)
-
Доступ запрещен (32769)
-
Не поддерживается (32770)
-
Состояние неизвестно (32771)
-
Время ожидания (32772)
-
Недопустимый параметр (32773)
-
Система используется (32774)
-
Недопустимое состояние для этой операции (32775)
-
Неправильный тип данных (32776)
-
Система недоступна (32777)
-
Нехватка памяти (32778)
-
Файл не найден (32779)
Комментарии
Дочерний виртуальный жесткий диск должен находиться в автономном режиме.
С этим методом можно использовать только следующие типы виртуальных жестких дисков:
- Разностные виртуальные жесткие диски
- Разностные VHDX
Доступ к классу Msvm_ImageManagementService может быть ограничен фильтрацией UAC. Дополнительные сведения см. в разделе Контроль учетных записей и инструментарий WMI.
Примеры
В следующем примере C# развертывается файл виртуального жесткого диска. Ссылки на служебные программы можно найти в разделе Общие служебные программы для примеров виртуализации (версия 2).
// 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();
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 8 [только классические приложения] |
Минимальная версия сервера |
Windows Server 2012 [только классические приложения] |
Пространство имен |
Root\Virtualization\V2 |
MOF |
|
DLL |
|