Virtual Devices (3.1) (vdag31qh.hlp) (Table of Contents; Topic list)
Get_PM_Int_Type
                                                     Up Next Previous
────────────────────────────────────────────────────────────────────────────
 
include vmm.inc
 
mov     eax, Interrupt      ; number of interrupt to check
VMMcall Get_PM_Int_Type
 
mov     [Type], edx         ; 0 if trap gate, otherwise interrupt gate
 
The Get_PM_Int_Type service determines whether a protected-mode interrupt
vector is an interrupt gate or trap gate type interrupt.
 
Parameter  Description
────────────────────────────────────────────────────────────────────────────
 
Interrupt  Specifies the number of the interrupt to check.
 
Return Value
 
The EDX register contains zero if the specified interrupt corresponds to a
trap gate. The EDX register contains a nonzero value if the interrupt
corresponds to an interrupt gate.
 
Comments
 
An interrupt through an interrupt gate automatically clears the interrupt
flag bit to disable interrupts. Interrupts through a trap gate do not modify
the interrupt bit. All protected-mode interrupts default to the trap gate
type, but virtual devices such as the virtual PIC device, may change some
trap gates to interrupt gates so that hardware interrupts disable
interrupts. The virtual PIC device leaves software interrupts, such as
Interrupt 21h, unchanged. This avoids an unnecessary ring transition by
eliminating the need for the software interrupt handlers to execute an sti
instruction.
 
Uses
 
EDX, Flags
 
See Also
 
Get_PM_Int_Vector, Set_PM_Int_Type