Message Data Types
Intercept messages are delivered by the synthetic interrupt controller (SynIC). For more information about SynIC messages, including the message header layout, see SynIC Messages.
Each message begins with a common message header that is described by a HV_MESSAGE_HEADER structure. The significant members of this structure are the message type, payload size, and the source of the message. The payload size reflects only the size of the data and does not include the message header.
The hypervisor uses the data types in the following sections to describe the payload of messages:
Intercept Message Header
All x64 memory access messages and processor intercept messages contain a common payload header. This header contains information about the state of the virtual processor at the time of the intercept, which enables the recipient of the message to complete the intercepted instruction in software. The common payload header for an intercept message is described by a HV_X64_INTERCEPT_MESSAGE_HEADER structure.
VP Execution State
A virtual processor's execution state is provided at the time an intercept is triggered. The execution state is provided through a HV_X64_VP_EXECUTION_STATE union.
I/O Port Access Information
On x64 platforms, I/O port access messages include a collection of flags that provide information about the memory access. This collection of flags is described by the HV_X64_IO_PORT_ACCESS_INFO union.
Exception Information
On x64 platforms, exception intercept messages include a collection of flags that provide information about the exception. This collection of flags is described by the HV_X64_EXCEPTION_INFO union.
Memory Access Flags
Memory intercept messages include a collection of flags that provide information about the intercept. This collection of flags is described by the HV_X64_MEMORY_ACCESS_INFO union.
Send comments about this topic to Microsoft
Build date: 11/16/2013