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 类具有以下属性。

Address

数据类型: 字符串

访问类型:只读

资源的地址。 例如,以太网端口的 MAC 地址。 此属性继承自 CIM_ResourceAllocationSettingData

AddressOnParent

数据类型: 字符串

访问类型:只读

描述此资源在父上下文中的地址。 Parent 和 AddressOnParent 属性用于描述控制器关系以及控制器上的设备的排序。 此属性继承自 CIM_ResourceAllocationSettingData

AllocationUnits

数据类型: 字符串

访问类型:只读

“预留”和“限制”属性使用的分配单位。 此属性继承自 CIM_ResourceAllocationSettingData

AutomaticAllocation

数据类型:boolean

访问类型:只读

指定是否自动分配资源。 例如,当此属性设置为 True 并且消耗的虚拟机已打开时,将分配此资源。 如果设置为 False,则表示必须显式分配资源。 例如,该设置可能表示可移动媒体(如 CD-ROM 或软盘),在启动时媒体不存在。 分配资源需要显式操作。 此属性继承自 CIM_ResourceAllocationSettingData

AutomaticDeallocation

数据类型: 布尔值

访问类型:只读

指定是否自动分配资源。 例如,当此属性设置为 True 并且消耗的虚拟机已打开时,将分配此资源。 如果设置为 False,则必须显式分配资源。 例如,该设置可能表示可移动媒体(如 CD-ROM 或软盘),在启动时媒体不存在。 分配资源需要显式操作。 此属性继承自 CIM_ResourceAllocationSettingData

Caption

数据类型: 字符串

访问类型:只读

限定符:MaxLen (64)

对象的简短描述。 此属性继承自 CIM_ManagedElement

Connection

数据类型:字符串数组

访问类型:只读

此资源连接到的设备。 例如,命名网络或交换机端口。 此属性继承自 CIM_ResourceAllocationSettingData

ConsumerVisibility

数据类型:uint16

访问类型:只读

描述使用者对已分配资源的可见性。 此属性继承自 CIM_ResourceAllocationSettingData

说明

数据类型:字符串

访问类型:只读

对象的说明。 此属性继承自 CIM_ManagedElement

DynamicMemoryEnabled

数据类型: 布尔值

访问类型:只读

指示是否为虚拟机启用了动态内存。

ElementName

数据类型: 字符串

访问类型:只读

对象的显示名称。 此属性继承自 CIM_SettingData

HostResource

数据类型:字符串数组

访问类型:只读

此数组的第一个元素包含对要分配的基础主机资源的引用。 此属性继承自 CIM_ResourceAllocationSettingData,但并未使用。

HugePagesEnabled

数据类型: 布尔值

访问类型:只读

内存是否由 1GB 页提供支持。

InstanceID

数据类型:字符串

访问类型:只读

限定符:Key

以唯一方式标识此类的实例。 此属性继承自 CIM_ManagedElement

IsVirtualized

数据类型: 布尔值

访问类型:只读

指示此设备是虚拟化还是传递。 设置为 False 时,将使用基础资源或主机资源。 DeviceID 属性中应至少存在一项。 设置为 True 时,资源将虚拟化,不能直接映射到基础/主机资源。 某些实现可支持对虚拟化资源进行特定分配,在这种情况下,使用 DeviceID 属性公开主机资源。 此属性始终设置为 True。

限制

数据类型:uint64

访问类型:只读

虚拟机可能消耗的最大内存量。 对于启用了动态内存的虚拟机,这表示最大内存设置。 此属性继承自 CIM_ResourceAllocationSettingData

MappingBehavior

数据类型:uint16

访问类型:只读

指定此资源如何映射到基础资源。 此属性继承自 CIM_ResourceAllocationSettingData

MaxMemoryBlocksPerNumaNode

数据类型:uint64

访问类型:只读

虚拟机中可观察到的属于单个 NUMA 节点的最大内存量。

OtherResourceType

数据类型: 字符串

访问类型:只读

当明确定义的值不可用且 ResourceType 的值为“其他”时,描述资源类型的字符串。 此属性继承自 CIM_ResourceAllocationSettingData

父级

数据类型: 字符串

访问类型:只读

资源的父级。 例如,当前分配的控制器。 此属性继承自 CIM_ResourceAllocationSettingData

PoolID

数据类型:字符串

访问类型:只读

从中分配此资源的资源池的标识符。 此属性继承自 CIM_ResourceAllocationSettingData

预留

数据类型:uint64

访问类型:只读

指定保证可用于此虚拟机的内存量。 对于启用了动态内存的虚拟机,这表示最小内存设置。 此属性继承自 CIM_ResourceAllocationSettingData

ResourceSubType

数据类型:字符串

访问类型:只读

描述此资源特定于实现的子类型的字符串。 例如,这可用于区分相同资源类型的不同模型。 此属性继承自 CIM_ResourceAllocationSettingData

ResourceType

数据类型:uint16

访问类型:只读

此分配设置表示的资源类型。 此属性继承自 CIM_ResourceAllocationSettingData,并且始终设置为 4(内存)。

SgxEnabled

数据类型: 布尔值

访问类型:只读

指示是否启用了 SGX。

注意

此属性已添加在 Windows 10 版本 1703 中。

SgxSize

数据类型:uint64

访问类型:只读

要为 VM 分配的 SGX 内存量(以 MB 为单位)。

注意

此属性已添加在 Windows 10 版本 1703 中。

SwapFilesInUse

数据类型:boolean

访问类型:只读

如果第二级分页处于活动状态,则为 true,否则为 false。

TargetMemoryBuffer

数据类型:uint32

访问类型:只读

定义在运行时应为虚拟机保留的额外内存量,占虚拟机预计需要的总内存的百分比。 这仅适用于启用了动态内存的虚拟机。

此属性的范围可以是 5 到 2000。

VirtualQuantity

数据类型:uint64

访问类型:只读

虚拟机中的 RAM 总量,如来宾操作系统所示。 对于启用了动态内存的虚拟机,这表示启动时可用的初始内存。 此属性继承自 CIM_ResourceAllocationSettingData

VirtualQuantityUnits

数据类型:字符串

访问类型:只读

指定此资源分配的度量单位。 此属性的值必须是 DSP0004 V2.5 或更高版本的附件 C.1 中定义的编程单元限定符的合法值。 此属性继承自 CIM_ResourceAllocationSettingData

Weight

数据类型:uint32

访问类型:只读

为每个虚拟机定义内存分配权重值。 满足所有预留后,托管平台的剩余内存将根据相对权重分配给虚拟机(不得超过“限制”属性指定的值)。 此属性继承自 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."
}

要求

要求
最低受支持的客户端
Windows 8 [仅限桌面应用]
最低受支持的服务器
Windows Server 2012 [仅限桌面应用]
命名空间
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

另请参阅