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 |