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

Table Of Contents
20-2 Vol. 3
VIRTUAL-MACHINE CONTROL STRUCTURES
pointer into a specified memory location (it stores the value FFFFFFFF_FFFFFFFFH
if there is no current VMCS). A VMCS remains current until either software
executes VMPTRLD with the address of a different VMCS (which then becomes
the current VMCS) or software executes VMCLEAR with the address of the current
VMCS (after which there is no current VMCS).
This document frequently uses the term “the VMCS” to refer to the current VMCS.
20.2 FORMAT OF THE VMCS REGION
A VMCS region comprises up to 4-KBytes.
1
The format of a VMCS region is given in
Table 20-1.
The first 32 bits of the VMCS region contain the VMCS revision identifier. Proces-
sors that maintain VMCS data in different formats (see below) use different VMCS
revision identifiers. These identifiers enable software to avoid using a VMCS region
formatted for one processor on a processor that uses a different format.
2
Software should write the VMCS revision identifier to the VMCS region before using
that region for a VMCS. The VMCS revision identifier is never written by the
processor; VMPTRLD may fail if its operand references a VMCS region whose VMCS
revision identifier differs from that used by the processor. Software can discover the
VMCS revision identifier that a processor uses by reading the VMX capability MSR
IA32_VMX_BASIC
(see Appendix G, “VMX Capability Reporting Facility”).
The next 32 bits of the VMCS region are used for the VMX-abort indicator. The
contents of these bits do not control processor operation in any way. A logical
processor writes a non-zero value into these bits if a VMX abort occurs (see Section
23.7). Software may also write into this field.
The remainder of the VMCS region is used for VMCS data (those parts of the VMCS
that control VMX non-root operation and the VMX transitions). The format of these
data is implementation-specific. VMCS data are discussed in Section 20.3 through
1. The exact size is implementation specific and can be determined by consulting the VMX capabil-
ity MSR IA32_VMX_BASIC to determine the size of the VMCS region (see Appendix G.1).
Table 20-1. Format of the VMCS Region
Byte Offset Contents
0VMCS revision identifier
4VMX-abort indicator
8 VMCS data (implementation-specific format)
2. Logical processors that use the same VMCS revision identifier use the same size for VMCS
regions.