Message Sources
The classes of events that can trigger the hypervisor to send a message are as follows:
- Intercepts
-
Any intercept in a virtual processor will cause the hypervisor to send a message. The message buffer that the hypervisor uses is the intercept message buffer of the virtual processor that caused the intercept. The receiving message queue belongs to SINT0 of a virtual processor that the hypervisor selects non-deterministically from among the virtual processors of the parent partition. The message payload describes the event that caused the intercept. If the intercept message buffer is already queued when an intercept occurs, the message buffer is removed from the queue, overwritten, and placed back on the queue. This should occur only if the software that runs in the parent partition clears the "suspended for intercept" register before receiving the intercept message. This situation is considered a programming error.
- Timers
-
The timer mechanism that is described in Hypervisor Timers will cause messages to be sent. Associated with each virtual processor are four dedicated timer message buffers, one for each timer. The receiving message queue belongs to SINTx of the virtual processor whose timer triggered the sending of the message. Timer messages are defined in Timer Expiration Message.
- Guest messages
-
The hypervisor supports message passing as an inter-partition communication mechanism between guests. The Inter-Partition Communication Functions allow one guest to send messages to another guest. The message buffers that are used for messages of this class are taken from the receiver's per-port pool of guest message buffers.
- Event log buffers
-
The hypervisor will send a message when an event log buffer has been filled.
Send comments about this topic to Microsoft
Build date: 11/16/2013