VPICD_Virtualize_IRQ

include vpicd.inc

mov edi, OFFSET32 vid ; points to a VPICD_IRQ_Descriptor

VxDcall VPICD_Virtualize_IRQ

jc error ; carry flag set if IRQ can't be virtualized

mov [IRQHand], eax ; IRQ handle


The VPICD_Virtualize_IRQ service assigns a virtual interrupt request to the calling virtual device.

This is not an asynchronous service.

Parameters

vid

Points to a VPICD_IRQ_Descriptor structure containing information about the virtual IRQ. The VID_IRQ_Number and VID_Hw_Int_Proc fields in the VPICD_IRQ_Descriptor structure must be set before calling this service.

Return Value

If the carry flag is clear, the EAX register contains the handle for the virtual IRQ. This handle is used for all subsequent communication with the virtual PIC device.

The carry flag is set to indicate an error such as the IRQ has already been virtualized, or the IRQ number is not valid.

Comments

The IRQ can be shared by up to 32 virtual devices if every virtual device specifies the VPICD_Opt_Can_Share value in the VID_Options field of the VPICD_IRQ_Descriptor structure.

Uses

EAX, Flags

See Also

VPICD_Force_Default_Behavior