classe Msvm_MemorySettingData

Rappresenta lo stato configurato della memoria per una macchina virtuale.

La sintassi seguente è un codice MOF (Managed Object Format) semplificato e include tutte le proprietà ereditate.

Sintassi

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

Membri

La classe Msvm_MemorySettingData ha questi tipi di membri:

Proprietà

La classe Msvm_MemorySettingData ha queste proprietà.

Indirizzo

Tipo di dati: string

Tipo di accesso: sola lettura

Indirizzo della risorsa. Ad esempio, l'indirizzo MAC di una porta Ethernet. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

AddressOnParent

Tipo di dati: string

Tipo di accesso: sola lettura

Descrive l'indirizzo di questa risorsa nel contesto dell'elemento padre. Le proprietà Parent e AddressOnParent vengono utilizzate per descrivere la relazione del controller e l'ordinamento dei dispositivi in un controller. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

AllocationUnits

Tipo di dati: string

Tipo di accesso: sola lettura

Unità di allocazione utilizzate dalle proprietà Reservation e Limit . Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

AutomaticAllocation

Tipo di dati: booleano

Tipo di accesso: sola lettura

Indica se la risorsa verrà allocata automaticamente. Ad esempio, quando questa proprietà è impostata su True e la macchina virtuale che usa è attivata, questa risorsa verrà allocata. Il valore False indica che la risorsa deve essere allocata in modo esplicito. Ad esempio, l'impostazione può rappresentare supporti rimovibili (ad esempio un CD-ROM o un disco floppy) in cui all'avvio, il supporto non è presente. Per allocare la risorsa è necessaria un'operazione esplicita. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

AutomaticDeallocation

Tipo di dati: booleano

Tipo di accesso: sola lettura

Indica se la risorsa verrà allocata automaticamente. Ad esempio, quando questa proprietà è impostata su True e la macchina virtuale che usa è attivata, questa risorsa verrà allocata. Quando questa proprietà è False, la risorsa deve essere allocata in modo esplicito. Ad esempio, l'impostazione può rappresentare supporti rimovibili (ad esempio un CD-ROM o un disco floppy) in cui all'avvio, il supporto non è presente. Per allocare la risorsa è necessaria un'operazione esplicita. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

Caption

Tipo di dati: string

Tipo di accesso: sola lettura

Qualificatori: MaxLen (64)

Breve descrizione dell'oggetto. Questa proprietà viene ereditata da CIM_ManagedElement.

Connessione

Tipo di dati: matrice di stringhe

Tipo di accesso: sola lettura

Dispositivo a cui è connessa questa risorsa. Ad esempio, una porta denominata network o switch. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

ConsumerVisibility

Tipo di dati: uint16

Tipo di accesso: sola lettura

Descrive la visibilità dei consumer sulla risorsa allocata. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

Descrizione

Tipo di dati: string

Tipo di accesso: sola lettura

Descrizione dell'oggetto . Questa proprietà viene ereditata da CIM_ManagedElement.

DynamicMemoryEnabled

Tipo di dati: booleano

Tipo di accesso: sola lettura

Indica se la memoria dinamica è abilitata per la macchina virtuale.

ElementName

Tipo di dati: string

Tipo di accesso: sola lettura

Nome visualizzato per l'oggetto. Questa proprietà viene ereditata da CIM_SettingData.

HostResource

Tipo di dati: matrice di stringhe

Tipo di accesso: sola lettura

Il primo elemento di questa matrice contiene un riferimento alla risorsa host sottostante da assegnare. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData, ma non viene utilizzata.

HugePagesEnabled

Tipo di dati: booleano

Tipo di accesso: sola lettura

Indica se la memoria è supportata o meno da pagine da 1 GB.

InstanceID

Tipo di dati: string

Tipo di accesso: sola lettura

Qualificatori: Chiave

Identifica in modo univoco un'istanza di questa classe. Questa proprietà viene ereditata da CIM_ManagedElement.

IsVirtualized

Tipo di dati: booleano

Tipo di accesso: sola lettura

Indica se il dispositivo è virtualizzato o passato. Se impostato su False, viene usata la risorsa host o sottostante. Almeno un elemento deve essere presente nella proprietà DeviceID . Se impostato su True, la risorsa viene virtualizzata e potrebbe non essere mappata direttamente a una risorsa sottostante/host. Alcune implementazioni possono supportare un'assegnazione specifica per le risorse virtualizzate, nel qual caso le risorse host vengono esposte usando la proprietà DeviceID . Questa proprietà è sempre impostata su True.

Limite

Tipo di dati: uint64

Tipo di accesso: sola lettura

Quantità massima di memoria che può essere utilizzata dalla macchina virtuale. Per una macchina virtuale con memoria dinamica abilitata, rappresenta l'impostazione massima di memoria. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

MappingBehavior

Tipo di dati: uint16

Tipo di accesso: sola lettura

Specifica il mapping di questa risorsa alle risorse sottostanti. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

MaxMemoryBlocksPerNumaNode

Tipo di dati: uint64

Tipo di accesso: sola lettura

Quantità massima di memoria che può essere osservata all'interno della macchina virtuale come appartenente a un singolo nodo NUMA.

OtherResourceType

Tipo di dati: string

Tipo di accesso: sola lettura

Stringa che descrive il tipo di risorsa quando un valore ben definito non è disponibile e ResourceType ha il valore "Other". Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

Parent

Tipo di dati: string

Tipo di accesso: sola lettura

Elemento padre della risorsa. Ad esempio, un controller per l'allocazione corrente. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

PoolID

Tipo di dati: string

Tipo di accesso: sola lettura

Identificatore del pool di risorse da cui è stata allocata la risorsa. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

Impegno

Tipo di dati: uint64

Tipo di accesso: sola lettura

Specifica la quantità di memoria garantita per questa macchina virtuale. Per una macchina virtuale con memoria dinamica abilitata, rappresenta l'impostazione di memoria minima. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

ResourceSubType

Tipo di dati: string

Tipo di accesso: sola lettura

Stringa che descrive un sottotipo specifico di implementazione per questa risorsa. Ad esempio, questo può essere usato per distinguere modelli diversi dello stesso tipo di risorsa. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

ResourceType

Tipo di dati: uint16

Tipo di accesso: sola lettura

Tipo di risorsa rappresentato da questa impostazione di allocazione. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData ed è sempre impostata su 4 (memoria).

SgxEnabled

Tipo di dati: booleano

Tipo di accesso: sola lettura

Indica se SGX è abilitato.

Nota

Questa proprietà è stata aggiunta in Windows 10 versione 1703.

SgxSize

Tipo di dati: uint64

Tipo di accesso: sola lettura

Quantità di memoria SGX da allocare per la macchina virtuale, in MB.

Nota

Questa proprietà è stata aggiunta in Windows 10 versione 1703.

SwapFilesInUse

Tipo di dati: booleano

Tipo di accesso: sola lettura

true se il paging di secondo livello è attivo; in caso contrario, false.

TargetMemoryBuffer

Tipo di dati: uint32

Tipo di accesso: sola lettura

Definisce la quantità di memoria aggiuntiva che deve essere riservata per una macchina virtuale in fase di esecuzione, come percentuale della memoria totale necessaria per la macchina virtuale. Questo vale solo per le macchine virtuali con memoria dinamica abilitata.

Questa proprietà può essere compreso nell'intervallo compreso tra 5 e 2000.

VirtualQuantity

Tipo di dati: uint64

Tipo di accesso: sola lettura

Quantità totale di RAM nella macchina virtuale, come illustrato dal sistema operativo guest. Per una macchina virtuale con memoria dinamica abilitata, rappresenta la memoria iniziale disponibile all'avvio. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

VirtualQuantityUnits

Tipo di dati: string

Tipo di accesso: sola lettura

Specifica l'unità di misura per questa allocazione di risorse. Il valore di questa proprietà deve essere un valore legale del qualificatore unità programmatice come definito nell'allegato C.1 di DSP0004 V2.5 o versione successiva. Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

Peso

Tipo di dati: uint32

Tipo di accesso: sola lettura

Definisce il valore di ponderazione dell'allocazione della memoria per ogni macchina virtuale. Dopo che tutte le riserve sono state soddisfatte, la memoria rimanente della piattaforma host verrà allocata alle macchine virtuali in base ai relativi pesi (per non superare il valore specificato dalla proprietà Limit ). Questa proprietà viene ereditata da CIM_ResourceAllocationSettingData.

Osservazioni:

L'accesso alla classe Msvm_MemorySettingData potrebbe essere limitato dal filtro controllo dell'account utente. Per altre informazioni, vedere Controllo dell'account utente e WMI.

Esempi

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."
}

Requisiti

Requisito Valore
Client minimo supportato
Windows 8 [solo app desktop]
Server minimo supportato
Windows Server 2012 [solo app desktop]
Spazio dei nomi
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

Vedi anche