VPICD_Set_Int_Request

include vpicd.inc

mov eax, IRQHand ; IRQ handle

mov ebx, VM ; current VM handle

VxDcall VPICD_Set_Int_Request


The VPICD_Set_Int_Request service sets a virtual interrupt request for the specified IRQ and virtual machine. Setting the request causes the system to simulate an interrupt. Although the simulation may occur immediately, in many cases it may not until a later point in time.

Parameters

IRQHand

Specifies the handle identifying the IRQ to set.

VM

Specifies the handle identifying the virtual machine.

Return Value

This service has no return value.

Comments

The interrupt is not simulated immediately if any of the following conditions are present:

The virtual machine has interrupts disabled

The virtual machine has masked the IRQ

A higher priority virtual IRQ is in service

The virtual machine is suspended, or not able to run

However, since the interrupt may be simulated immediately, a virtual device that has a virtual interrupt handler must be able to handle a call to the handler before this service returns.

Setting an interrupt request does not guarantee that the interrupt will be simulated. For example, if the VM has masked the interrupt and never unmasks it, the interrupt is never simulated. Also, a call to the VPICD_Clear_Int_Request service made before the virtual interrupt is simulated prevents the interrupt simulation.

The virtual VPIC device simulates a level-triggered PIC. This means that once a virtual EOI occurs, another interrupt will be simulated immediately unless the virtual interrupt request is cleared.

Uses

Flags

See Also

VPICD_Clear_Int_Request