Trigger Types

Virtual interrupts are either edge-triggered or level-triggered. Edge-triggered interrupts are latched upon assertion and cannot be withdrawn. Level-triggered interrupts are not latched and can potentially be withdrawn by deasserting. The following table indicates, for each interrupt type that is defined in HV_INTERRUPT_TYPE, what the implicit interrupt trigger type is and whether software should specify a vector with the virtual interrupt in a call to the HvAssertVirtualInterrupt hypercall function.

Interrupt type Vector applicable? Trigger type

HvX64InterruptTypeNmi

No

Edge

HvX64InterruptTypeInit

No

Edge

HvX64InterruptTypeSipi

Yes

Edge

HvX64InterruptTypeFixed

Yes

Edge or Level

HvX64InterruptTypeLowestPriority

Yes

Edge or Level

HvX64InterruptTypeExtInt

Yes

Level

HvX64InterruptTypeSmi

Yes

Level

 

Some time after a virtual interrupt is asserted, the virtual processor might acknowledge the virtual interrupt. Until then, software can deassert level-triggered virtual interrupts by calling HvAssertVirtualInterrupt with vector HV_INTERRUPT_VECTOR_NONE or can re-assert level-triggered virtual interrupts by calling HvAssertVirtualInterrupt again. Deasserting an edge-triggered interrupt is unnecessary and has no effect.

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.