Clase Msvm_MemorySettingData

Representa el estado configurado de la memoria de una máquina virtual.

La siguiente sintaxis es código de Managed Object Format (MOF) simplificado e incluye todas las propiedades heredadas.

Sintaxis

[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;
};

Miembros

La clase Msvm_MemorySettingData tiene estos tipos de miembros:

Propiedades

La clase Msvm_MemorySettingData tiene estas propiedades.

Dirección

Tipo de datos: cadena

Tipo de acceso: solo lectura

La dirección del recurso. Por ejemplo, la dirección MAC de un puerto Ethernet. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

AddressOnParent

Tipo de datos: cadena

Tipo de acceso: solo lectura

Describe la dirección de este recurso en el contexto del elemento primario. Las propiedades Parent y AddressOnParent se usan para describir la relación del controlador, así como el orden de los dispositivos de un controlador. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

AllocationUnits

Tipo de datos: cadena

Tipo de acceso: solo lectura

Unidades de asignación usadas por las propiedades Reservation y Limit. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

AutomaticAllocation

Tipo de datos: booleano

Tipo de acceso: solo lectura

Indica si el recurso se asignará automáticamente. Por ejemplo, cuando esta propiedad se establece en True y la máquina virtual que consume está activada, se asignaría este recurso. Un valor False indica que el recurso debe asignarse explícitamente. Por ejemplo, la configuración puede representar medios extraíbles (como un CD-ROM o un disco de disquete) donde en el inicio el medio no está presente. Se requiere una operación explícita para asignar el recurso. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

AutomaticDeallocation

Tipo de datos: booleano

Tipo de acceso: solo lectura

Indica si el recurso se asignará automáticamente. Por ejemplo, cuando esta propiedad se establece en True y la máquina virtual que consume está activada, se asignaría este recurso. Cuando esta propiedad es False, el recurso debe asignarse explícitamente. Por ejemplo, la configuración puede representar medios extraíbles (como un CD-ROM o un disco de disquete) donde en el inicio el medio no está presente. Se requiere una operación explícita para asignar el recurso. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

Caption

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: MaxLen (64)

Breve descripción del objeto. Esta propiedad se hereda de CIM_ManagedElement.

Conexión

Tipo de datos: matriz de cadena

Tipo de acceso: solo lectura

Dispositivo al que está conectado este recurso. Por ejemplo, un puerto de conmutador o una red con nombre. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

ConsumerVisibility

Tipo de datos: uint16

Tipo de acceso: solo lectura

Describe la visibilidad de los consumidores al recurso asignado. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

Descripción

Tipo de datos: cadena

Tipo de acceso: solo lectura

Descripción del objeto . Esta propiedad se hereda de CIM_ManagedElement.

DynamicMemoryEnabled

Tipo de datos: booleano

Tipo de acceso: solo lectura

Indica si la memoria dinámica está habilitada para la máquina virtual.

ElementName

Tipo de datos: cadena

Tipo de acceso: solo lectura

Nombre para mostrar del objeto. Esta propiedad se hereda de CIM_SettingData.

HostResource

Tipo de datos: matriz de cadena

Tipo de acceso: solo lectura

El primer elemento de esta matriz contiene una referencia al recurso host subyacente que se va a asignar. Esta propiedad se hereda de CIM_ResourceAllocationSettingData, pero no se usa.

HugePagesEnabled

Tipo de datos: booleano

Tipo de acceso: solo lectura

Indica si la memoria está respaldada o no por páginas de 1 GB.

InstanceID

Tipo de datos: cadena

Tipo de acceso: solo lectura

Calificadores: Key

Identifica de forma única una instancia de esta clase. Esta propiedad se hereda de CIM_ManagedElement.

IsVirtualized

Tipo de datos: booleano

Tipo de acceso: solo lectura

Indica si este dispositivo se virtualiza o es de paso a través. Cuando se establece en False, se usa el recurso subyacente o host. Al menos un elemento debe estar presente en la propiedad deviceID. Cuando se establece en True, el recurso se virtualiza y puede que no se asigne directamente a un recurso subyacente o host. Algunas implementaciones pueden admitir una asignación específica para los recursos virtualizados, en cuyo caso los recursos host se exponen mediante la propiedad DeviceID. Esta propiedad siempre se establece en True.

Límite

Tipo de datos: uint64

Tipo de acceso: solo lectura

Cantidad máxima de memoria que puede consumir la máquina virtual. Para una máquina virtual con la memoria dinámica habilitada, representa la configuración de memoria máxima. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

MappingBehavior

Tipo de datos: uint16

Tipo de acceso: solo lectura

Especifica cómo se asigna este recurso a los recursos subyacentes. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

MaxMemoryBlocksPerNumaNode

Tipo de datos: uint64

Tipo de acceso: solo lectura

Cantidad máxima de memoria que se puede observar dentro de la máquina virtual como perteneciente a un único nodo NUMA.

OtherResourceType

Tipo de datos: cadena

Tipo de acceso: solo lectura

Cadena que describe el tipo de recurso cuando un valor bien definido no está disponible y ResourceType tiene el valor "Other". Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

Parent

Tipo de datos: cadena

Tipo de acceso: solo lectura

Elemento primario del recurso. Por ejemplo, un controlador para la asignación actual. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

PoolID

Tipo de datos: cadena

Tipo de acceso: solo lectura

Identificador del grupo de recursos desde el que se asignó este recurso. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

Reserva

Tipo de datos: uint64

Tipo de acceso: solo lectura

Especifica la cantidad de memoria garantizada que está disponible para esta máquina virtual. Para una máquina virtual con la memoria dinámica habilitada, representa la configuración de memoria mínima. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

ResourceSubType

Tipo de datos: cadena

Tipo de acceso: solo lectura

Cadena que describe un subtipo específico de implementación para este recurso. Por ejemplo, esto puede usarse para distinguir diferentes modelos del mismo tipo de recurso. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

ResourceType

Tipo de datos: uint16

Tipo de acceso: solo lectura

Tipo de recurso que representa esta configuración de asignación. Esta propiedad se hereda de CIM_ResourceAllocationSettingData y siempre se establece en 4 (Memoria).

SgxEnabled

Tipo de datos: booleano

Tipo de acceso: solo lectura

Indica si SGX está habilitado.

Nota:

Esta propiedad se agregó en Windows 10, versión 1703.

SgxSize

Tipo de datos: uint64

Tipo de acceso: solo lectura

Cantidad de memoria SGX que se va a asignar para la máquina virtual, en MB.

Nota:

Esta propiedad se agregó en Windows 10, versión 1703.

SwapFilesInUse

Tipo de datos: booleano

Tipo de acceso: solo lectura

true si la paginación de segundo nivel está activa; de lo contrario, false.

TargetMemoryBuffer

Tipo de datos: uint32

Tipo de acceso: solo lectura

Define la cantidad de memoria adicional que se debe reservar para una máquina virtual en tiempo de ejecución, como porcentaje de la memoria total que se cree que necesita la máquina virtual. Esto solo se aplica a las máquinas virtuales con la memoria dinámica habilitada.

Esta propiedad puede estar en el intervalo comprendido entre 5 y 2000.

VirtualQuantity

Tipo de datos: uint64

Tipo de acceso: solo lectura

Cantidad total de RAM en la máquina virtual, tal como lo ve el sistema operativo invitado. Para una máquina virtual con memoria dinámica habilitada, representa la memoria inicial disponible en el inicio. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

VirtualQuantityUnits

Tipo de datos: cadena

Tipo de acceso: solo lectura

Especifica la unidad de medida para esta asignación de recursos. El valor de esta propiedad debe ser un valor legal del calificador Unidades de programación, tal como se define en el anexo C.1 de DSP0004 V2.5 o posterior. Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

Peso

Tipo de datos: uint32

Tipo de acceso: solo lectura

Define el valor de ponderación de asignación de memoria para cada máquina virtual. Una vez que se hayan cumplido todas las reservas, la memoria restante de la plataforma de hospedaje se asignará a las máquinas virtuales en función de sus ponderaciones relativas (no superar el valor especificado por la propiedad Limit). Esta propiedad se hereda de CIM_ResourceAllocationSettingData.

Comentarios

El filtrado de UAC puede restringir el acceso a la clase Msvm_MemorySettingData. Para obtener más información, vea Control de cuentas de usuario y WMI.

Ejemplos

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 compatible
Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2012 [solo aplicaciones de escritorio]
Espacio de nombres
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
Archivo DLL
Vmms.exe

Consulte también