Virtual Machine control structure (VMCS) Field IDs
Identify the fields of the virtual machine control structure.
Overview
Used by the functions hv_vmx_vcpu_read_vmcs(_:_:_:) and hv_vmx_vcpu_write_vmcs(_:_:_:). The VMCS fields are read-only or read-write by the Hypervisor framework, according to the following table:
Readable and Writable VMCS Fields - Guest Fields
Guest | Field |
|---|---|
RIP, RSP, RFLAGS | |
CR3, CR4, DR7 | |
Selector | {ES, CS, SS, DS, FS, GS, LDTR, TR} |
Base | {ES, CS, SS, DS, FS, GS, LDTR, TR, GDTR, IDTR} |
Limit | {ES, CS, SS, DS, FS, GS, LDTR, TR, GDTR, IDTR} |
Access Rights | {ES, CS, SS, DS, FS, GS, LDTR, TR} |
PDPTE | {0, 1, 2, 3} |
CR3-Target | {0, 1, 2, 3} |
IA32_SYSENTER_CS | |
IA32_SYSENTER_ESP | |
IA32_SYSENTER_EIP | |
IA32_EFER | |
Interruptibility State | |
Pending Debug Exceptions |
Readable and Writable VMCS Fields - Control Fields
Control Field |
|---|
Exception Bitmap |
Page-Fault Error-Code Mask |
VM-Entry Interruption-Information Field |
VM-Entry Exception Error Code |
VM-Entry Instruction Length |
TPR Threshold |
PLE Gap |
PLE Window |
CR0 Guest/Host Mask |
CR4 Guest/Host Mask |
CR0 Read Shadow |
CR4 Read Shadow |
Readable and Conditionally Writable VMCS Fields - Guest Fields
Guest Field | Condition |
|---|---|
CR0 | CR0.CD and CR0.NW are unset |
Activity State | ACTIVE or HLT |
Readable and Conditionally Writable VMCS Fields - Control Fields
Control Field | Condition |
|---|---|
CR0 Guest/Host Mask | CR0.CD and CR0.NW are set |
Pin-Based VM-Execution Controls | Hv_vmx_read_capability(_:_:) returns true |
Primary Processor-Based VM-ExecutionControls | Hv_vmx_read_capability(_:_:) returns true |
Secondary Processor-Based VM-ExecutionControls | Hv_vmx_read_capability(_:_:) returns true |
VM-Entry Controls | Hv_vmx_read_capability(_:_:) returns true |
Read-Only VMCS Fields - Control Fields
Control Field |
|---|
TSC Offset |
APIC-Access Address |
Read-Only VMCS Fields - Data Fields
Data Fields |
|---|
VM-Instruction Error |
Exit Reason |
VM-Exit Interruption Information |
VM-Exit Interruption Error Code |
IDT-Vectoring Information Field |
IDT-Vectoring Error Code |
VM-Exit Instruction Length |
VM-Exit Instruction Information |
Guest-Physical Address |
Exit Qualification |
Guest-Linear Address |
Topics
IDs
VMCS_VPIDVMCS_CTRL_POSTED_INT_N_VECTORVMCS_CTRL_EPTP_INDEXVMCS_GUEST_ESVMCS_GUEST_CSVMCS_GUEST_SSVMCS_GUEST_DSVMCS_GUEST_FSVMCS_GUEST_GSVMCS_GUEST_LDTRVMCS_GUEST_TRVMCS_GUEST_INT_STATUSVMCS_GUESTPML_INDEXVMCS_HOST_ESVMCS_HOST_CSVMCS_HOST_SSVMCS_HOST_DSVMCS_HOST_FSVMCS_HOST_GSVMCS_HOST_TRVMCS_CTRL_IO_BITMAP_AVMCS_CTRL_IO_BITMAP_BVMCS_CTRL_MSR_BITMAPSVMCS_CTRL_VMEXIT_MSR_STORE_ADDRVMCS_CTRL_VMEXIT_MSR_LOAD_ADDRVMCS_CTRL_VMENTRY_MSR_LOAD_ADDRVMCS_CTRL_EXECUTIVE_VMCS_PTRVMCS_CTRL_PML_ADDRVMCS_CTRL_TSC_OFFSETVMCS_CTRL_VIRTUAL_APICVMCS_CTRL_APIC_ACCESSVMCS_CTRL_POSTED_INT_DESC_ADDRVMCS_CTRL_VMFUNC_CTRLVMCS_CTRL_EPTPVMCS_CTRL_EOI_EXIT_BITMAP_0VMCS_CTRL_EOI_EXIT_BITMAP_1VMCS_CTRL_EOI_EXIT_BITMAP_2VMCS_CTRL_EOI_EXIT_BITMAP_3VMCS_CTRL_EPTP_LIST_ADDRVMCS_CTRL_VMREAD_BITMAP_ADDRVMCS_CTRL_VMWRITE_BITMAP_ADDRVMCS_CTRL_VIRT_EXC_INFO_ADDRVMCS_CTRL_XSS_EXITING_BITMAPVMCS_CTRL_ENCLS_EXITING_BITMAPVMCS_CTRL_SPP_TABLEVMCS_CTRL_TSC_MULTIPLIERVMCS_GUEST_PHYSICAL_ADDRESSVMCS_GUEST_LINK_POINTERVMCS_GUEST_IA32_DEBUGCTLVMCS_GUEST_IA32_PATVMCS_GUEST_IA32_EFERVMCS_GUEST_IA32_PERF_GLOBAL_CTRLVMCS_GUEST_PDPTE0VMCS_GUEST_PDPTE1VMCS_GUEST_PDPTE2VMCS_GUEST_PDPTE3VMCS_GUEST_IA32_BNDCFGSVMCS_GUEST_IA32_RTIT_CTLVMCS_HOST_IA32_PATVMCS_HOST_IA32_EFERVMCS_HOST_IA32_PERF_GLOBAL_CTRLVMCS_CTRL_PIN_BASEDVMCS_CTRL_CPU_BASEDVMCS_CTRL_EXC_BITMAPVMCS_CTRL_PF_ERROR_MASKVMCS_CTRL_PF_ERROR_MATCHVMCS_CTRL_CR3_COUNTVMCS_CTRL_VMEXIT_CONTROLSVMCS_CTRL_VMEXIT_MSR_STORE_COUNTVMCS_CTRL_VMEXIT_MSR_LOAD_COUNTVMCS_CTRL_VMENTRY_CONTROLSVMCS_CTRL_VMENTRY_MSR_LOAD_COUNTVMCS_CTRL_VMENTRY_IRQ_INFOVMCS_CTRL_VMENTRY_EXC_ERRORVMCS_CTRL_VMENTRY_INSTR_LENVMCS_CTRL_TPR_THRESHOLDVMCS_CTRL_CPU_BASED2VMCS_CTRL_PLE_GAPVMCS_CTRL_PLE_WINDOWVMCS_RO_INSTR_ERRORVMCS_RO_EXIT_REASONVMCS_RO_VMEXIT_IRQ_INFOVMCS_RO_VMEXIT_IRQ_ERRORVMCS_RO_IDT_VECTOR_INFOVMCS_RO_IDT_VECTOR_ERRORVMCS_RO_VMEXIT_INSTR_LENVMCS_RO_VMX_INSTR_INFOVMCS_GUEST_ES_LIMITVMCS_GUEST_CS_LIMITVMCS_GUEST_SS_LIMITVMCS_GUEST_DS_LIMITVMCS_GUEST_FS_LIMITVMCS_GUEST_GS_LIMITVMCS_GUEST_LDTR_LIMITVMCS_GUEST_TR_LIMITVMCS_GUEST_GDTR_LIMITVMCS_GUEST_IDTR_LIMITVMCS_GUEST_ES_ARVMCS_GUEST_CS_ARVMCS_GUEST_SS_ARVMCS_GUEST_DS_ARVMCS_GUEST_FS_ARVMCS_GUEST_GS_ARVMCS_GUEST_LDTR_ARVMCS_GUEST_TR_ARVMCS_GUEST_INTERRUPTIBILITYVMCS_GUEST_IGNORE_IRQVMCS_GUEST_ACTIVITY_STATEVMCS_GUEST_SMBASEVMCS_GUEST_IA32_SYSENTER_CSVMCS_GUEST_VMX_TIMER_VALUEVMCS_HOST_IA32_SYSENTER_CSVMCS_CTRL_CR0_MASKVMCS_CTRL_CR4_MASKVMCS_CTRL_CR0_SHADOWVMCS_CTRL_CR4_SHADOWVMCS_CTRL_CR3_VALUE0VMCS_CTRL_CR3_VALUE1VMCS_CTRL_CR3_VALUE2VMCS_CTRL_CR3_VALUE3VMCS_RO_EXIT_QUALIFICVMCS_RO_IO_RCXVMCS_RO_IO_RSIVMCS_RO_IO_RDIVMCS_RO_IO_RIPVMCS_RO_GUEST_LIN_ADDRVMCS_GUEST_CR0VMCS_GUEST_CR3VMCS_GUEST_CR4VMCS_GUEST_ES_BASEVMCS_GUEST_CS_BASEVMCS_GUEST_SS_BASEVMCS_GUEST_DS_BASEVMCS_GUEST_FS_BASEVMCS_GUEST_GS_BASEVMCS_GUEST_IDTR_BASEVMCS_GUEST_TR_BASEVMCS_GUEST_GDTR_BASEVMCS_GUEST_LDTR_BASEVMCS_GUEST_DR7VMCS_GUEST_RSPVMCS_GUEST_RIPVMCS_GUEST_RFLAGSVMCS_GUEST_DEBUG_EXCVMCS_GUEST_SYSENTER_ESPVMCS_GUEST_SYSENTER_EIPVMCS_HOST_CR0VMCS_HOST_CR3VMCS_HOST_CR4VMCS_HOST_FS_BASEVMCS_HOST_GS_BASEVMCS_HOST_TR_BASEVMCS_HOST_GDTR_BASEVMCS_HOST_IDTR_BASEVMCS_HOST_IA32_SYSENTER_ESPVMCS_HOST_IA32_SYSENTER_EIPVMCS_HOST_RSPVMCS_HOST_RIPVMCS_MAX
Interruptibility options
GUEST_INTRBILITY_MOVSS_BLOCKINGGUEST_INTRBILITY_NMI_BLOCKINGGUEST_INTRBILITY_SMI_BLOCKINGGUEST_INTRBILITY_STI_BLOCKING