Classe Msvm_MemorySettingData
Representa o estado configurado da memória de uma máquina virtual.
A sintaxe a seguir é um código MOF (Managed Object Format) simplificado e inclui todas as propriedades herdadas.
Sintaxe
[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;
};
Membros
A classe Msvm_MemorySettingData tem esses tipos de membros:
Propriedades
A classe Msvm_MemorySettingData tem as seguintes propriedades.
Endereço
Tipo de dados: string
Tipo de acesso: somente leitura
O endereço do recurso. Por exemplo, o endereço MAC de uma porta Ethernet. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
AddressOnParent
Tipo de dados: string
Tipo de acesso: somente leitura
Descreve o endereço desse recurso no contexto do pai. As propriedades Parent e AddressOnParent são usadas para descrever o relacionamento com o controlador, bem como a ordenação dos dispositivos em um controlador. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
AllocationUnits
Tipo de dados: string
Tipo de acesso: somente leitura
As unidades de alocação usadas pelas propriedades Reservation e Limit. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
AutomaticAllocation
Tipo de dados: booliano
Tipo de acesso: somente leitura
Indica se o recurso será alocado automaticamente. Por exemplo, quando essa propriedade for definida como True e a máquina virtual consumidora for ligada, esse recurso será alocado. Um valor de False indica que o recurso deve ser alocado explicitamente. Por exemplo, a configuração pode representar uma mídia removível (como um CD-ROM ou um disquete) em que, na inicialização, a mídia não está presente. Uma operação explícita é necessária para alocar o recurso. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
AutomaticDeallocation
Tipo de dados: booliano
Tipo de acesso: somente leitura
Indica se o recurso será alocado automaticamente. Por exemplo, quando essa propriedade é definida como True e a máquina virtual consumidora é ligada, esse recurso é alocado. Quando essa propriedade for False, o recurso deverá ser alocado explicitamente. Por exemplo, a configuração pode representar uma mídia removível (como um CD-ROM ou um disquete) em que, na inicialização, a mídia não está presente. Uma operação explícita é necessária para alocar o recurso. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
Legenda
Tipo de dados: string
Tipo de acesso: somente leitura
Qualificadores: Comprimento Máximo (64)
Uma descrição breve do objeto. Essa propriedade é herdada de CIM_ManagedSystemElement.
Conexão
Tipo de dados: matriz string
Tipo de acesso: somente leitura
O dispositivo ao qual esse recurso está conectado. Por exemplo, uma porta de rede ou switch nomeada. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
ConsumerVisibility
Tipo de dados: uint16
Tipo de acesso: somente leitura
Descreve a visibilidade dos consumidores para o recurso alocado. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
Descrição
Tipo de dados: string
Tipo de acesso: somente leitura
Uma descrição do objeto . Essa propriedade é herdada de CIM_ManagedSystemElement.
DynamicMemoryEnabled
Tipo de dados: booliano
Tipo de acesso: somente leitura
Indica se a memória dinâmica está habilitada para a máquina virtual.
ElementName
Tipo de dados: string
Tipo de acesso: somente leitura
Um nome de exibição para o objeto. Essa propriedade é herdada de CIM_SettingData.
HostResource
Tipo de dados: matriz string
Tipo de acesso: somente leitura
O primeiro elemento dessa matriz contém uma referência ao recurso de host subjacente a ser atribuído. Essa propriedade é herdada de CIM_ResourceAllocationSettingData, mas não é usada.
HugePagesEnabled
Tipo de dados: booliano
Tipo de acesso: somente leitura
Se a memória é apoiada por páginas de 1 GB ou não.
InstanceID
Tipo de dados: string
Tipo de acesso: somente leitura
Qualificadores: Key
Identifica exclusivamente uma instância dessa classe. Essa propriedade é herdada de CIM_ManagedSystemElement.
IsVirtualized
Tipo de dados: booliano
Tipo de acesso: somente leitura
Indica se esse dispositivo é virtualizado ou de passagem. Quando definido como False, é usado o recurso subjacente ou do host. Pelo menos um item deve estar presente na propriedade DeviceID. Quando definido como True, o recurso é virtualizado e não pode ser mapeado diretamente para um recurso subjacente/hospedeiro. Algumas implementações podem oferecer suporte à atribuição específica de recursos virtualizados, caso em que os recursos do host são expostos usando a propriedade DeviceID. Essa propriedade é sempre definida como True.
Limite
Tipo de dados: uint64
Tipo de acesso: somente leitura
A quantidade máxima de memória que pode ser consumida pela máquina virtual. Para uma máquina virtual com memória dinâmica habilitada, isso representa a configuração máxima de memória. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
MappingBehavior
Tipo de dados: uint16
Tipo de acesso: somente leitura
Especifica como esse recurso é mapeado para recursos subjacentes. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
MaxMemoryBlocksPerNumaNode
Tipo de dados: uint64
Tipo de acesso: somente leitura
A quantidade máxima de memória que pode ser observada na máquina virtual como pertencente a um único nó NUMA.
OtherResourceType
Tipo de dados: string
Tipo de acesso: somente leitura
Uma cadeia de caracteres que descreve o tipo de recurso quando um valor bem definido não está disponível e ResourceType tem o valor "Outro". Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
Pai
Tipo de dados: string
Tipo de acesso: somente leitura
O pai do recurso. Por exemplo, um controlador para a alocação atual. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
PoolID
Tipo de dados: string
Tipo de acesso: somente leitura
O identificador do pool de recursos do qual esse recurso foi alocado. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
Reserva
Tipo de dados: uint64
Tipo de acesso: somente leitura
Especifica a quantidade de memória garantida disponível para essa máquina virtual. Para uma máquina virtual com memória dinâmica habilitada, isso representa a configuração mínima de memória. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
ResourceSubType
Tipo de dados: string
Tipo de acesso: somente leitura
Uma cadeia de caracteres que descreve um subtipo específico de implementação para esse recurso. Por exemplo, isso pode ser usado para distinguir diferentes modelos do mesmo tipo de recurso. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
ResourceType
Tipo de dados: uint16
Tipo de acesso: somente leitura
O tipo de recurso que essa configuração de alocação representa. Essa propriedade é herdada de CIM_ResourceAllocationSettingData e é sempre definida como 4 (Memória).
SgxEnabled
Tipo de dados: booliano
Tipo de acesso: somente leitura
Indica se o SGX está habilitado.
Observação
Essa propriedade foi adicionada no Windows 10, versão 1703.
SgxSize
Tipo de dados: uint64
Tipo de acesso: somente leitura
A quantidade de memória do SGX a ser alocada para a VM, em MB.
Observação
Essa propriedade foi adicionada no Windows 10, versão 1703.
SwapFilesInUse
Tipo de dados: booliano
Tipo de acesso: somente leitura
true se a paginação de segundo nível estiver ativa; caso contrário, false.
TargetMemoryBuffer
Tipo de dados: uint32
Tipo de acesso: somente leitura
Define a quantidade de memória extra que deve ser reservada para uma máquina virtual em runtime, como uma porcentagem da memória total que a máquina virtual supostamente precisa. Isso se aplica somente a máquinas virtuais com memória dinâmica ativada.
Essa propriedade pode estar no intervalo de 5 a 2.000.
VirtualQuantity
Tipo de dados: uint64
Tipo de acesso: somente leitura
A quantidade total de RAM na máquina virtual, conforme visto pelo sistema operacional convidado. Para uma máquina virtual com memória dinâmica habilitada, isso representa a memória inicial disponível na inicialização. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
VirtualQuantityUnits
Tipo de dados: string
Tipo de acesso: somente leitura
Especifica a unidade de medida para essa alocação de recursos. O valor dessa propriedade deve ser um valor legal do qualificador de Unidades Programáticas, conforme definido no Anexo C.1 do DSP0004 V2.5 ou posterior. Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
Weight
Tipo de dados: uint32
Tipo de acesso: somente leitura
Define o valor de ponderação da alocação de memória para cada máquina virtual. Depois que todas as reservas forem atendidas, a memória restante da plataforma de hospedagem será alocada às máquinas virtuais com base em seus pesos relativos (para não exceder o valor especificado pela propriedade Limit). Essa propriedade é herdada de CIM_ResourceAllocationSettingData.
Comentários
O acesso à classe Msvm_MemorySettingData pode ser restringido pela Filtragem UAC. Para obter mais informações, confira Controle de Conta do Usuário e WMI.
Exemplos
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."
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 8 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows Server 2012 [somente aplicativos da área de trabalho] |
Namespace |
Root\Virtualization\V2 |
MOF |
WindowsVirtualization.V2.mof |
DLL |
Vmms.exe |