Поделиться через


Метод ResizeVirtualHardDisk класса Msvm_ImageManagementService

Изменяет размер существующего виртуального жесткого диска. Виртуальный жесткий диск должен находиться в автономном режиме. Ограничения использования для этого метода см. в разделе Примечания.

Синтаксис

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

Параметры

Путь [in]

Тип: string

Полный путь к файлу виртуального жесткого диска.

MaxInternalSize [in]

Тип: uint64

Максимальный размер виртуального жесткого диска в байтах, доступный для просмотра виртуальной машиной. Минимальное значение MaxInternalSizeDiskSize + 512 (DiskSize mod 512). DiskSize — это размер файла виртуального жесткого диска в байтах. Если указанное значение MaxInternalSize меньше минимального, возвращается ошибка InvalidParameter (32773).

Задание [out]

Тип: CIM_ConcreteJob

Если операция выполняется асинхронно, этот метод возвращает значение 4096, а этот параметр будет содержать ссылку на объект, производный от CIM_ConcreteJob.

Возвращаемое значение

Тип: uint32

Этот метод может возвращать одно из следующих значений.

Выполнено без ошибок (0)

Проверенные параметры метода — задание запущено (4096)

Сбой (32768)

Доступ запрещен (32769)

Не поддерживается (32770)

Состояние неизвестно (32771)

Время ожидания (32772)

Недопустимый параметр (32773)

Система используется (32774)

Недопустимое состояние для этой операции (32775)

Неправильный тип данных (32776)

Система недоступна (32777)

Нехватка памяти (32778)

Файл не найден (32779)

Комментарии

При увеличении размера виртуального жесткого диска с этим методом можно использовать только следующие типы виртуальных жестких дисков:

  • Исправлен виртуальный жесткий диск
  • Исправлена версия VHDX
  • Динамический виртуальный жесткий диск
  • Динамический VHDX
  • Разностные VHDX

При уменьшении размера виртуального жесткого диска с этим методом можно использовать только следующие типы виртуальных жестких дисков:

  • Исправлена версия VHDX
  • Динамический VHDX
  • Разностные VHDX

Доступ к классу Msvm_ImageManagementService может быть ограничен фильтрацией UAC. Дополнительные сведения см. в разделе Контроль учетных записей и инструментарий WMI.

Примеры

В следующем примере C# развертывается файл виртуального жесткого диска. Ссылки на служебные программы можно найти в разделе Общие служебные программы для примеров виртуализации (версия 2).

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();
}

Требования

Требование Значение
Минимальная версия клиента
Windows 8 [только классические приложения]
Минимальная версия сервера
Windows Server 2012 [только классические приложения]
Пространство имен
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

См. также раздел

CIM_ConcreteJob

Msvm_ImageManagementService