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

Table Of Contents
20-24 Vol. 3
VIRTUAL-MACHINE CONTROL STRUCTURES
—The vector (bits 7:0) determines which entry in the IDT is used or which
other event is injected.
—The interruption type (bits 10:8) determines details of how the injection is
performed. In general, a VMM should use the type hardware exception for
all exceptions other than breakpoint exceptions (#BP; generated by INT3)
and overflow exceptions (#OF; generated by INTO); it should use the type
software exception for #BP and #OF. The type other event is used for
injection of events that are not delivered through the IDT.
For exceptions, the deliver-error-code bit (bit 11) determines whether
delivery pushes an error code on the guest stack.
VM entry injects an event if and only if the valid bit (bit 31) is 1. Note that
the valid bit in this field is cleared on every VM exit.
VM-entry exception error code (32 bits). This field is used if and only if the
valid bit (bit 31) and the deliver-error-code bit (bit 11) are both set in the
VM-entry interruption-information field.
VM-entry instruction length (32 bits). For injection of events whose type is
software interrupt, software exception, or privileged software exception, this
field is used to determine the value of RIP that is pushed on the stack.
See Section 22.5 for details regarding the mechanics of event injection, including the
use of the interruption type and the VM-entry instruction length.
VM exits clear the valid bit (bit 31) in the VM-entry interruption-information field.
10:8 Interruption type:
0: External interrupt
1: Reserved
2: Non-maskable interrupt (NMI)
3: Hardware exception
4: Software interrupt
5: Privileged software exception
6: Software exception
7: Other event
11 Deliver error code (0 = do not deliver; 1 = deliver)
30:12 Reserved
31 Valid
Table 20-12. Format of the VM-Entry Interruption-Information Field (Contd.)
Bit
Position(s)
Content