Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
G-6 Vol. 3
VMX CAPABILITY REPORTING FACILITY
1, bit X is 1 in the secondary processor-based VM-execution controls, and
bit 32+X is 0 in this MSR.
The IA32_VMX_PROCBASED_CTLS2 MSR exists only on processors that support the
1-setting of the “activate secondary controls” VM-execution control (only if bit 63 of
the IA32_VMX_PROCBASED_CTLS MSR is 1).
G.4 VM-EXIT CONTROLS
The IA32_VMX_EXIT_CTLS MSR (index 483H) reports on the allowed settings of
most of the VM-exit controls (see Section 20.7.1):
Bits 31:0 indicate the allowed 0-settings of these controls. VM entry fails if bit X
is 0 in the VM-exit controls and bit X is 1 in this MSR.
Exceptions are made for the VM-exit controls in the default1 class (see Appendix
G.2). These are bits 0–8, 10, 11, 13, 14, 16, and 17; the corresponding bits of
the IA32_VMX_EXIT_CTLS MSR are always read as 1. The treatment of these
controls by VM entry is determined by bit 55 in the IA32_VMX_BASIC MSR:
If bit 55 in the IA32_VMX_BASIC MSR is read as 0, VM entry fails if any
VM-exit control in the default1 class is 0.
If bit 55 in the IA32_VMX_BASIC MSR is read as 1, the
IA32_VMX_TRUE_EXIT_CTLS MSR (see below) reports which of the VM-exit
controls in the default1 class can be 0 on VM entry.
Bits 63:32 indicate the allowed 1-settings of these controls. VM entry fails if bit X
is 1 in the VM-exit controls and bit 32+X is 0 in this MSR.
If bit 55 in the IA32_VMX_BASIC MSR is read as 1, the IA32_VMX_TRUE_EXIT_CTLS
MSR (index 48FH) reports on the allowed settings of all of the VM-exit controls:
Bits 31:0 indicate the allowed 0-settings of these controls. VM entry fails if bit X
is 0 in the VM-exit controls and bit X is 1 in this MSR. There are no exceptions.
Bits 63:32 indicate the allowed 1-settings of these controls. VM entry fails if bit X
is 1 in the VM-exit controls and bit 32+X is 0 in this MSR.
Note that it is necessary for software to consult only one of the capability MSRs to
determine the allowed settings of the VM-exit controls:
If bit 55 in the IA32_VMX_BASIC MSR is read as 0, all information about the
allowed settings of the VM-exit controls is contained in the
IA32_VMX_EXIT_CTLS MSR. (The IA32_VMX_TRUE_EXIT_CTLS MSR is not
supported.)
If bit 55 in the IA32_VMX_BASIC MSR is read as 1, all information about the
allowed settings of the VM-exit controls is contained in the
IA32_VMX_TRUE_EXIT_CTLS MSR. Assuming that software knows that the
default1 class of VM-exit controls contains bits 0–8, 10, 11, 13, 14, 16, and 17,
there is no need for software to consult the IA32_VMX_EXIT_CTLS MSR.