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

Table Of Contents
20-28 Vol. 3
VIRTUAL-MACHINE CONTROL STRUCTURES
IDT-vectoring error code (32 bits). For VM exits the occur during delivery of
hardware exceptions that would have delivered an error code on the stack, this
field receives that error code.
See Section 23.2.3 provides details of how these fields are saved on VM exits.
20.9.4 Information for VM Exits Due to Instruction Execution
The following fields are used for VM exits caused by attempts to execute certain
instructions in VMX non-root operation:
VM-exit instruction length (32 bits). For VM exits resulting from instruction
execution, this field receives the length in bytes of the instruction whose
execution led to the VM exit.
1
See Section 23.2.4 for details of when and how this
field is used.
VM-exit instruction information (32 bits). This field is used for VM exits due
to attempts to execute INS, INVEPT, INVVPID, LIDT, LGDT, LLDT, LTR, OUTS,
SIDT, SGDT, SLDT, STR, VMCLEAR, VMPTRLD, VMPTRST, VMREAD, VMWRITE, or
VMXON.
2
The format of the field depends on the cause of the VM exit. See
Section 23.2.4 for details.
The following fields (64 bits each; 32 bits on processors that do not support Intel 64
architecture) are used only for VM exits due to SMIs that arrive immediately after
retirement of I/O instructions. They provide information about that I/O instruction:
I/O RCX. The value of RCX before the I/O instruction started.
I/O RSI. The value of RSI before the I/O instruction started.
I/O RDI. The value of RDI before the I/O instruction started.
I/O RIP. The value of RIP before the I/O instruction started (the RIP that
addressed the I/O instruction).
20.9.5 VM-Instruction Error Field
The 32-bit VM-instruction error field does not provide information about the most
recent VM exit. In fact, it is not modified on VM exits. Instead, it provides information
about errors encountered by a non-faulting execution of one of the VMX instructions.
1. This field is also used for VM exits that occur during the delivery of a software interrupt or soft-
ware exception.
2. Whether the processor provides this information on VM exits due to attempts to execute INS or
OUTS can be determined by consulting the VMX capability MSR IA32_VMX_BASIC (see Appendix
G.1).