Event Flag Delivery
When a partition calls the HvSignalEvent hypercall function, the partition specifies an event flag number. The hypervisor then atomically sets a bit within the receiving virtual processor's SIEF page. (For more information about the SIEF page, see SIM and SIEF Pages.) Virtual processors whose SynIC or SIEF page is disabled will not be considered as potential targets. If no targets are available, the hypervisor terminates the operation and returns an error to the caller.
If the event flag was previously cleared, the hypervisor attempts to notify the receiving partition that the flag is now set by generating an edge-triggered interrupt. The target virtual processor, along with the target SINTx, is specified as part of a port's creation. (For more information about ports, see Hypervisor Ports and Connections.) If the SINTx is masked, the HvSignalEvent hypercall function returns HV_STATUS_INVALID_SYNIC_STATE.
As with any fixed-priority external interrupt, the interrupt is not acknowledged by the virtual processor until the process priority register (PPR) is less than the vector that is specified in the SINTx register and interrupts are not masked by the virtual processor (rFLAGS[IF] is set to 1).
Send comments about this topic to Microsoft
Build date: 11/16/2013