background image

Vol. 3D C-1

APPENDIX C

VMX BASIC EXIT REASONS

Every VM exit writes a 32-bit exit reason to the VMCS (see Section 24.9.1). Certain VM-entry failures also do this 
(see Section 26.7). The low 16 bits of the exit-reason field form the basic exit reason which provides basic informa-
tion about the cause of the VM exit or VM-entry failure.
Table C-1 lists values for basic exit reasons and explains their meaning. Entries apply to VM exits, unless otherwise 
noted.

Table C-1.  Basic Exit Reasons 

Basic Exit 

Reason

Description

0

Exception or non-maskable interrupt (NMI). Either:
1: Guest software caused an exception and the bit in the exception bitmap associated with exception’s vector was 1.

2: An NMI was delivered to the logical processor and the “NMI exiting” VM-execution control was 1. This case includes 

executions of BOUND that cause #BR, executions of INT3 (they cause #BP), executions of INTO that cause #OF, 

and executions of UD2 (they cause #UD).

1

External interrupt. An external interrupt arrived and the “external-interrupt exiting” VM-execution control was 1.

2

Triple fault. The logical processor encountered an exception while attempting to call the double-fault handler and 

that exception did not itself cause a VM exit due to the exception bitmap.

3

INIT signal. An INIT signal arrived

4

Start-up IPI (SIPI). A SIPI arrived while the logical processor was in the “wait-for-SIPI” state.

5

I/O system-management interrupt (SMI). An SMI arrived immediately after retirement of an I/O instruction and 

caused an SMM VM exit (see Section 34.15.2).

6

Other SMI. An SMI arrived and caused an SMM VM exit (see Section 34.15.2) but not immediately after retirement of 

an I/O instruction.

7

Interrupt window. At the beginning of an instruction, RFLAGS.IF was 1; events were not blocked by STI or by MOV 

SS; and the “interrupt-window exiting” VM-execution control was 1.

8

NMI window. At the beginning of an instruction, there was no virtual-NMI blocking; events were not blocked by MOV 

SS; and the “NMI-window exiting” VM-execution control was 1.

9

Task switch. Guest software attempted a task switch.

10

CPUID. Guest software attempted to execute CPUID.

11

GETSEC. Guest software attempted to execute GETSEC.

12

HLT. Guest software attempted to execute HLT and the “HLT exiting” VM-execution control was 1.

13

INVD. Guest software attempted to execute INVD.

14

INVLPG. Guest software attempted to execute INVLPG and the “INVLPG exiting” VM-execution control was 1.

15

RDPMC. Guest software attempted to execute RDPMC and the “RDPMC exiting” VM-execution control was 1.

16

RDTSC. Guest software attempted to execute RDTSC and the “RDTSC exiting” VM-execution control was 1.

17

RSM. Guest software attempted to execute RSM in SMM.

18

VMCALL. VMCALL was executed either by guest software (causing an ordinary VM exit) or by the executive monitor 

(causing an SMM VM exit; see Section 34.15.2).

19

VMCLEAR. Guest software attempted to execute VMCLEAR.

20

VMLAUNCH. Guest software attempted to execute VMLAUNCH.

21

VMPTRLD. Guest software attempted to execute VMPTRLD.

22

VMPTRST. Guest software attempted to execute VMPTRST.

23

VMREAD. Guest software attempted to execute VMREAD.