Reliability and Sequencing of Guest Message Buffers
Messages that a guest operating system successfully posts through calls to the HvPostMessage hypercall function are queued for delivery by the hypervisor. Actual delivery and reception by the target partition is dependent on the target partition's correct operation. Partitions can disable delivery of messages to particular virtual processors by either disabling the virtual processor's SynIC (for more information about disabling SynIC, see SCONTROL Register) or disabling the SIMP (for more information about disabling SIMP, see SIMP Register).
If a guest breaks a connection through a call to the HvDisconnectPort hypercall function, undelivered (queued) messages will not be affected. If a guest deletes a target port through a call to the HvDeletePort hypercall function, the hypervisor will always free all of the port's message buffers, whether they are available or contain undelivered (queued) messages.
Messages arrive at the hypervisor's message queue in the order in which a guest operating system successfully posts them through calls to the HvPostMessage hypercall function. If the receiving port is associated with a specific virtual processor, the messages will arrive at the target partition in the same order in which they were posted. If the receiving port is associated with HV_ANY_VP, the messages are not guaranteed to arrive at the target partition in any particular order.
Send comments about this topic to Microsoft
Build date: 11/16/2013