Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Overview
Structure for controlling virtual interrupt routing & semantics.
Syntax
#if defined(_AMD64_)
typedef union
{
UINT64 AsUINT64;
struct
{
HV_INTERRUPT_TYPE InterruptType;
UINT32 LevelTriggered : 1;
UINT32 LogicalDestinationMode : 1;
UINT32 Reserved : 30;
};
} HV_X64_INTERRUPT_CONTROL;
#define HV_INTERRUPT_CONTROL HV_X64_INTERRUPT_CONTROL
#else
typedef union
{
UINT64 AsUINT64;
struct
{
HV_INTERRUPT_TYPE InterruptType;
UINT32 Reserved1 : 2;
UINT32 Asserted : 1;
UINT32 Reserved2 : 29;
};
} HV_ARM64_INTERRUPT_CONTROL;
#define HV_INTERRUPT_CONTROL HV_ARM64_INTERRUPT_CONTROL
#endif // _ARCH_
The interrupt control structure provides architecture-specific control over interrupt delivery behavior.
x64 Architecture Fields:
- InterruptType: Specifies the type of interrupt to deliver (see HV_INTERRUPT_TYPE)
- LevelTriggered: When set, indicates level-triggered interrupt; when clear, indicates edge-triggered
- LogicalDestinationMode: When set, uses logical destination mode for interrupt routing, where the target specifies a logical APIC ID which describes a set of target virtual processors; when clear, uses physical destination mode where the target specifies a local APIC ID.
ARM64 Architecture Fields:
- InterruptType: Specifies the type of interrupt to deliver (see HV_INTERRUPT_TYPE)
- Asserted: When set, indicates the interrupt should be asserted; when clear, indicates deassertion
Usage Notes
- On ARM64, whether the interrupt is edge or level triggered is controlled by the Guest GIC configuration, rather than the HV_INTERRUPT_CONTROL structure.
See also
HV_INTERRUPT_TYPE HV_INTERRUPT_VECTOR HvCallAssertVirtualInterrupt