HV_PARTITION_PRIVILEGE_MASK

Секция может запрашивать свою маску привилегий через конечный элемент CPUID (0x40000003) для идентификации функций гипервизора.

Синтаксис

typedef struct
{
    // Access to virtual MSRs
    UINT64 AccessVpRunTimeReg:1;
    UINT64 AccessPartitionReferenceCounter:1;
    UINT64 AccessSynicRegs:1;
    UINT64 AccessSyntheticTimerRegs:1;
    UINT64 AccessIntrCtrlRegs:1;
    UINT64 AccessHypercallMsrs:1;
    UINT64 AccessVpIndex:1;
    UINT64 AccessResetReg:1;
    UINT64 AccessStatsReg:1;
    UINT64 AccessPartitionReferenceTsc:1;
    UINT64 AccessGuestIdleReg:1;
    UINT64 AccessFrequencyRegs:1;
    UINT64 AccessDebugRegs:1;
    UINT64 AccessReenlightenmentControls:1
    UINT64 Reserved1:18;

    // Access to hypercalls
    UINT64 CreatePartitions:1;
    UINT64 AccessPartitionId:1;
    UINT64 AccessMemoryPool:1;
    UINT64 Reserved:1;
    UINT64 PostMessages:1;
    UINT64 SignalEvents:1;
    UINT64 CreatePort:1;
    UINT64 ConnectPort:1;
    UINT64 AccessStats:1;
    UINT64 Reserved2:2;
    UINT64 Debugging:1;
    UINT64 CpuManagement:1;
    UINT64 Reserved:1
    UINT64 Reserved:1;
    UINT64 Reserved:1;
    UINT64 AccessVSM:1;
    UINT64 AccessVpRegisters:1;
    UINT64 Reserved:1;
    UINT64 Reserved:1;
    UINT64 EnableExtendedHypercalls:1;
    UINT64 StartVirtualProcessor:1;
    UINT64 Reserved3:10;
} HV_PARTITION_PRIVILEGE_MASK;

Каждая привилегия управляет доступом к набору искусственных msr или гипермасштабирования.

Флаг привилегий Значение
AccessVpRunTimeReg Секция имеет доступ к синтетической HV_X64_MSR_VP_RUNTIME MSR.
AccessPartitionReferenceCounter Секция имеет доступ к счетчику ссылок на уровне секции MSR, HV_X64_MSR_TIME_REF_COUNT.
AccessSynicRegs Секция имеет доступ к искусственным MSR, связанным с Synic (HV_X64_MSR_SCONTROL через HV_X64_MSR_EOM и HV_X64_MSR_SINT0 через HV_X64_MSR_SINT15).
AccessSyntheticTimerMsrs Секция имеет доступ к искусственным MSR, связанным с Synic (HV_X64_MSR_STIMER0_CONFIG через HV_X64_MSR_STIMER3_COUNT).
AccessIntrCtrlRegs Секция имеет доступ к искусственным MSR, связанным с APIC (HV_X64_MSR_EOI, HV_X64_MSR_ICR и HV_X64_MSR_TPR).
AccessHypercallMsrs Секция имеет доступ к искусственным MSR, связанным с интерфейсом гипервызова (HV_X64_MSR_GUEST_OS_ID и HV_X64_MSR_HYPERCALL).
AccessVpIndex Секция имеет доступ к синтетической MSR, возвращающей индекс виртуального процессора.
AccessResetReg Этот раздел имеет доступ к искусственному MSR, который сбрасывает систему.
AccessStatsReg Эта секция имеет доступ к искусственным MSR, что позволяет гостевой машине сопоставлять и отменять сопоставление собственных страниц статистики.
AccessPartitionReferenceTsc Секция имеет доступ к эталонной TSC.
AccessGuestIdleReg Секция имеет доступ к синтетической MSR, которая позволяет гость входить в состояние бездействия гостя.
AccessFrequencyRegs Секция имеет доступ к искусственным MSR, которые предоставляют частоты TSC и APIC, если это поддерживается.
AccessDebugRegs Секция имеет доступ к искусственным MSR, используемым для некоторых форм гостевой отладки.
AccessReenlightenmentControls Секция имеет доступ к элементам управления повторной подсветки.
CreatePartitions Секция может вызывать гипервыск HvCallCreatePartition. Секция также может выполнять любые другие операции гипервызова, ограниченные для работы с дочерними элементами.
AccessPartitionId Секция может вызвать гипервыск HvCallGetPartitionId для получения собственного идентификатора секции.
AccessMemoryPool Секция может вызывать гипермасштабирования HvCallDepositMemory, HvCallWithdrawMemory и HvCallGetMemoryBalance.
PostMessages Секция может вызывать гипервыск HvCallPostMessage.
SignalEvents Секция может вызывать гипервыск HvCallSignalEvent.
CreatePort Секция может вызывать гипервыск HvCallCreatePort.
PostMessages Секция может вызывать гипервыск HvCallPostMessage.
ConnectPort Секция может вызывать гипервсегов HvCallConnectPort.
AccessStats Секция может вызывать гипермасштабирования HvCallMapStatsPage и HvCallUnmapStatsPage.
Debugging Секция может вызывать гипермасштабирования HvCallPostDebugData, HvCallRetrieveDebugData и HvCallResetDebugSession.
CpuManagement Секция может вызывать различные гипермасштабирования для управления ЦП.
AccessVSM Секция может использовать VSM.
AccessVpRegisters Секция может вызывать гипермасштабирования HvCallSetVpRegisters и HvCallGetVpRegisters.
EnableExtendedHypercalls Секция может использовать расширенный интерфейс гипервызова.
StartVirtualProcessor Раздел может использовать HvCallStartVirtualProcessor для инициализации виртуальных процессоров.