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

Show:
© 2014 Microsoft. All rights reserved.