VPICD_Get_IRQ_Complete_Status


include vpicd.inc

mov     eax, IRQNum
VxDcall VPICD_Get_IRQ_Complete_Status
jc      already_virtualized
mov     [Status], ecx

Retrieves the complete status for the specified IRQ. This service is similar to VPICD_Get_Complete_Status, except that it takes an IRQ number as a parameter instead of an IRQ handle. Uses ECX and Flags.

VPICD_Stat_In_Service

The IRQ is virtually in service.

VPICD_Stat_IRET_Pending

A virtual iret is pending.

VPICD_Stat_Phys_In_Serv

The IRQ is physically in service.

VPICD_Stat_Phys_Mask

The IRQ is physically masked.

VPICD_Stat_Phys_Req

The physical interrupt request has been set.

VPICD_Stat_Virt_Mask

The virtual machine has masked the IRQ.

VPICD_Stat_Virt_Req

The virtual interrupt request for the virtual machine has been set (by a virtual device, not necessarily the caller).


IRQNum

Number of the IRQ for which to retrieve status.

Virtual devices typically use this service to inspect an IRQ before attempting to virtualize it, or to inspect the state of another virtual device's interrupt. Since the service indicates whether an IRQ has been virtualized, virtual devices use this service to avoid conflicts when more than one device may want to use an IRQ.