background image

24-2 Vol. 3C

VIRTUAL MACHINE CONTROL STRUCTURES

Figure 24-1 illustrates the different states of a VMCS. It uses “X” to refer to the VMCS and “Y” to refer to any other 
VMCS. Thus: “VMPTRLD X” always makes X current and active; “VMPTRLD Y” always makes X not current (because 
it makes Y current); VMLAUNCH makes the launch state of X “launched” if X was current and its launch state was 
“clear”; and VMCLEAR X always makes X inactive and not current and makes its launch state “clear”.
The figure does not illustrate operations that do not modify the VMCS state relative to these parameters (e.g., 
execution of VMPTRLD X when X is already current). Note that VMCLEAR X makes X “inactive, not current, and 
clear,” even if X’s current state is not defined (e.g., even if X has not yet been initialized). See Section 24.11.3.

Because a shadow VMCS (see Section 24.10) cannot be used for VM entry, the launch state of a shadow VMCS is 
not meaningful. Figure 24-1 does not illustrate all the ways in which a shadow VMCS may be made active.

24.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 24-1.

The first 4 bytes of the VMCS region contain the VMCS revision identifier at bits 30:0.

2

 Processors that maintain 

VMCS data in different formats (see below) use different VMCS revision identifiers. These identifiers enable soft-

Figure 24-1.  States of VMCS X

Table 24-1.  Format of the VMCS Region

Byte Offset

Contents

0

Bits 30:0: VMCS revision identifier
Bit 31: shadow-VMCS indicator (see Section 24.10)

4

VMX-abort  indicator

8

VMCS data (implementation-specific format)

1. The exact size is implementation specific and can be determined by consulting the VMX capability MSR IA32_VMX_BASIC to deter-

mine the size of the VMCS region (see Appendix A.1).

Active

Not Current

Clear

Active

Current

Clear

Inactive

Not Current

Clear

Active

Not Current

Launched

Active

Current

Launched

V

M

P

TR

LD

 X

V

M

C

LE

A

R

 X

VMLAUNCH

VM

CL

E

AR X

VMCLEAR X

VMCLEAR X

VMCLEAR X

Anything

Else

VM

PT
RLD

 X

VM

PT
RLD

 Y

VM

PT
RLD

 X

VM

PT
RLD

 Y