класс Msvm_MemorySettingData

Представляет настроенное состояние памяти для виртуальной машины.

Следующий синтаксис упрощен в коде формата управляемых объектов (MOF) и включает все унаследованные свойства.

Синтаксис

[Dynamic, Provider("VmmsWmiInstanceAndMethodProvider"), AMENDMENT]
class Msvm_MemorySettingData : CIM_ResourceAllocationSettingData
{
  string  InstanceID;
  string  Caption = "Memory Default Settings";
  string  Description = "Describes the default settings for the memory resources.";
  string  ElementName;
  uint16  ResourceType = 4;
  string  OtherResourceType;
  string  ResourceSubType = "Microsoft:Hyper-V:Memory";
  string  PoolID;
  uint16  ConsumerVisibility;
  string  HostResource[];
  boolean HugePagesEnabled;
  string  AllocationUnits = "byte * 2^20";
  uint64  VirtualQuantity;
  uint64  Reservation;
  uint64  Limit;
  uint32  Weight;
  boolean AutomaticAllocation = True;
  boolean AutomaticDeallocation = True;
  string  Parent;
  string  Connection[];
  string  Address;
  uint16  MappingBehavior;
  string  AddressOnParent;
  string  VirtualQuantityUnits = "byte * 2^20";
  boolean DynamicMemoryEnabled;
  uint32  TargetMemoryBuffer;
  boolean IsVirtualized = True;
  boolean SwapFilesInUse;
  uint64  MaxMemoryBlocksPerNumaNode;
  uint64  SgxSize;
  boolean SgxEnabled;
};

Участники

Класс Msvm_MemorySettingData имеет следующие типы элементов:

Свойства

Класс Msvm_MemorySettingData имеет эти свойства.

Адрес

Тип данных: строка

Тип доступа: только для чтения

Адрес ресурса. Например, MAC-адрес порта Ethernet. Это свойство наследуется от CIM_ResourceAllocationSettingData.

AddressOnParent

Тип данных: строка

Тип доступа: только для чтения

Описывает адрес этого ресурса в контексте родительского объекта. Свойства Parent и AddressOnParent используются для описания связи контроллера, а также порядка устройств на контроллере. Это свойство наследуется от CIM_ResourceAllocationSettingData.

AllocationUnits

Тип данных: строка

Тип доступа: только для чтения

Единицы выделения, используемые свойствами резервирования и ограничения . Это свойство наследуется от CIM_ResourceAllocationSettingData.

Автоматическое размещение

Тип данных: логический

Тип доступа: только для чтения

Указывает, будет ли ресурс автоматически выделен. Например, если для этого свойства задано значение True , а потребляемая виртуальная машина включена, этот ресурс будет выделен. Значение False указывает, что ресурс должен быть явно выделен. Например, параметр может представлять съемный носитель (например, компакт-диск или диск floppy), где во время запуска носитель отсутствует. Для выделения ресурса требуется явная операция. Это свойство наследуется от CIM_ResourceAllocationSettingData.

Автоматическое определение расположения

Тип данных: логический

Тип доступа: только для чтения

Указывает, будет ли ресурс автоматически выделен. Например, если для этого свойства задано значение True и используется виртуальная машина, она будет выделена. Если это свойство имеет значение False, ресурс должен быть явно выделен. Например, параметр может представлять съемный носитель (например, компакт-диск или диск floppy), где во время запуска носитель отсутствует. Для выделения ресурса требуется явная операция. Это свойство наследуется от CIM_ResourceAllocationSettingData.

Заголовок

Тип данных: строка

Тип доступа: только для чтения

Квалификаторы: MaxLen (64)

Краткое описание объекта. Это свойство наследуется от CIM_ManagedElement.

Connection

Тип данных: массив строк

Тип доступа: только для чтения

Устройство, к которому подключен этот ресурс. Например, именованный сетевой или коммутатор порта. Это свойство наследуется от CIM_ResourceAllocationSettingData.

ConsumerVisibility

Тип данных: uint16

Тип доступа: только для чтения

Описывает видимость потребителей выделенного ресурса. Это свойство наследуется от CIM_ResourceAllocationSettingData.

Description

Тип данных: строка

Тип доступа: только для чтения

Описание объекта . Это свойство наследуется от CIM_ManagedElement.

DynamicMemoryEnabled

Тип данных: логический

Тип доступа: только для чтения

Указывает, включена ли динамическая память для виртуальной машины.

ElementName

Тип данных: строка

Тип доступа: только для чтения

Отображаемое имя объекта. Это свойство наследуется от CIM_SettingData.

HostResource

Тип данных: массив строк

Тип доступа: только для чтения

Первый элемент этого массива содержит ссылку на назначенный базовый ресурс узла. Это свойство наследуется от CIM_ResourceAllocationSettingData, но оно не используется.

HugePagesEnabled

Тип данных: логический

Тип доступа: только для чтения

Поддерживается ли память 1 ГБ страниц.

InstanceID

Тип данных: строка

Тип доступа: только для чтения

Квалификаторы: ключ

Уникально идентифицирует экземпляр этого класса. Это свойство наследуется от CIM_ManagedElement.

IsVirtualized

Тип данных: логический

Тип доступа: только для чтения

Указывает, является ли это устройство виртуализированным или передается через. Если задано значение False, используется базовый ресурс или ресурс узла. Хотя бы один элемент должен присутствовать в свойстве DeviceID . Если задано значение True, ресурс виртуализирован и может не сопоставляться непосредственно с базовым или хост-ресурсом. Некоторые реализации могут поддерживать конкретное назначение для виртуализированных ресурсов, в этом случае ресурсы узла предоставляются с помощью свойства DeviceID . Это свойство всегда имеет значение True.

Лимит

Тип данных: uint64

Тип доступа: только для чтения

Максимальный объем памяти, который может использоваться виртуальной машиной. Для виртуальной машины с включенной динамической памятью это значение представляет максимальный размер памяти. Это свойство наследуется от CIM_ResourceAllocationSettingData.

СопоставлениеBehavior

Тип данных: uint16

Тип доступа: только для чтения

Указывает, как этот ресурс сопоставляется с базовыми ресурсами. Это свойство наследуется от CIM_ResourceAllocationSettingData.

MaxMemoryBlocksPerNumaNode

Тип данных: uint64

Тип доступа: только для чтения

Максимальный объем памяти, который можно наблюдать в виртуальной машине как принадлежащий одному узлу NUMA.

OtherResourceType

Тип данных: строка

Тип доступа: только для чтения

Строка, описывающая тип ресурса, если четко определенное значение недоступно, и ResourceType имеет значение Other. Это свойство наследуется от CIM_ResourceAllocationSettingData.

Parent

Тип данных: строка

Тип доступа: только для чтения

Родительский элемент ресурса. Например, контроллер для текущего выделения. Это свойство наследуется от CIM_ResourceAllocationSettingData.

PoolID

Тип данных: строка

Тип доступа: только для чтения

Идентификатор пула ресурсов, из которого был выделен этот ресурс. Это свойство наследуется от CIM_ResourceAllocationSettingData.

Резервирование

Тип данных: uint64

Тип доступа: только для чтения

Указывает объем памяти, гарантированно доступный для этой виртуальной машины. Для виртуальной машины с включенной динамической памятью это параметр минимальной памяти. Это свойство наследуется от CIM_ResourceAllocationSettingData.

ResourceSubType

Тип данных: строка

Тип доступа: только для чтения

Строка, описывающая конкретный подтип реализации для этого ресурса. Например, это может использоваться для различения разных моделей одного типа ресурсов. Это свойство наследуется от CIM_ResourceAllocationSettingData.

ResourceType

Тип данных: uint16

Тип доступа: только для чтения

Тип ресурса, который представляет этот параметр выделения. Это свойство наследуется от CIM_ResourceAllocationSettingData, и оно всегда имеет значение 4 (память).

SgxEnabled

Тип данных: логический

Тип доступа: только для чтения

Указывает, включена ли SGX.

Примечание.

Это свойство было добавлено в Windows 10 версии 1703.

SgxSize

Тип данных: uint64

Тип доступа: только для чтения

Объем памяти SGX, выделяемой для виртуальной машины, в МБ.

Примечание.

Это свойство было добавлено в Windows 10 версии 1703.

SwapFilesInUse

Тип данных: логический

Тип доступа: только для чтения

Значение true , если разбиение по страницам второго уровня активно; в противном случае — значение false.

TargetMemoryBuffer

Тип данных: uint32

Тип доступа: только для чтения

Определяет объем дополнительной памяти, который должен быть зарезервирован для виртуальной машины во время выполнения, в процентах от общего объема памяти, необходимой виртуальной машине. Это относится только к виртуальным машинам с поддержкой динамической памяти.

Это свойство может находиться в диапазоне от 5 до 2000.

VirtualQuantity

Тип данных: uint64

Тип доступа: только для чтения

Общий объем ОЗУ на виртуальной машине, как показано в гостевой операционной системе. Для виртуальной машины с включенной динамической памятью это представляет начальную память, доступную при запуске. Это свойство наследуется от CIM_ResourceAllocationSettingData.

VirtualQuantityUnits

Тип данных: строка

Тип доступа: только для чтения

Задает единицу измерения для выделения этого ресурса. Значение этого свойства должно быть юридическим значением квалификатора программных единиц, как определено в приложении C.1 DSP0004 версии 2.5 или более поздней версии. Это свойство наследуется от CIM_ResourceAllocationSettingData.

Вес

Тип данных: uint32

Тип доступа: только для чтения

Определяет значение веса выделения памяти для каждой виртуальной машины. После выполнения всех резервов оставшаяся память платформы размещения будет выделена виртуальным машинам на основе их относительных весов (не превышено значение, указанное свойством Limit ). Это свойство наследуется от CIM_ResourceAllocationSettingData.

Замечания

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

Примеры

function WaitForResult
{
  param($result)
  if ($result.ReturnValue -eq 4096)
  {
    while($true)
    {
      $result.Job
      if ($result.Job -ne $null)
      {
        if ($result.Job.JobState -gt 4)
        {
          return $result.Job.ErrorCode
        }
      }
      start-sleep 1
    }
  }
  else
  {
    return $result.ReturnValue
  }
}

if ($($args.count) -ne 2)
{
  Write-Host "EnableHugePages.ps1 VMName SizeInMB"
  return
}

$vmName = $args[0]
$sizeInMB = $args[1]
 
$namespace = "root\virtualization\v2"
$vm = Get-WmiObject -class MSVM_ComputerSystem -filter "ElementName='$vmName'" -namespace $namespace
$settings = Get-WmiObject -query "Associators of {$vm} where ResultClass = Msvm_VirtualSystemSettingData" -namespace $namespace
$vmSettings = $settings | ? VirtualSystemType -eq "Microsoft:Hyper-V:System:Realized"
$memorySettings = Get-WmiObject -query "Associators of {$vmSettings} where ResultClass = Msvm_MemorySettingData" -namespace $namespace

$memorySettings.MaxMemoryBlocksPerNumaNode = $sizeInMB
$memorySettings.Reservation = $sizeInMB
$memorySettings.Limit = $sizeInMB
$memorySettings.VirtualQuantity = $sizeInMB
$memorySettings.HugePagesEnabled = $True

$vmSvc = Get-WmiObject -class Msvm_VirtualSystemManagementService -namespace $namespace
$res = $vmSvc.ModifyResourceSettings($memorySettings.GetText(2))
if (WaitForResult($res) -ne 0)
{
  Write-Host "Failed."
}

Requirements

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

См. также