Simulate_Int

include vmm.inc

mov eax, Interrupt ; interrupt number

VMMcall Simulate_Int


The Simulate_Int service simulates an interrupt in the current virtual machine. The service first calls any hook procedures set by the Hook_V86_Int_Chain service. If no hook procedure services the interrupt, this service pushes the Client_Flags, Client_CS, and Client_IP registers on the stack of the current virtual machine. When the virtual machine resumes execution (such as when an Resume_Exec service is called), the system carries out the simulated interrupt and executes the corresponding V86 mode interrupt routine.

The virtual PIC device uses this service to simulate hardware interrupts. Other virtual devices use the Exec_Int service to simulate interrupts.

Parameters

Interrupt

Specifies the number of the interrupt to simulate.

Return Value

This service has no return value.

Comments

If the virtual machine is currently in V86 mode, this service simulates a V86 interrupt. Otherwise, the service simulates a protected-mode interrupt. Simulating an interrupt in a virtual machine running a protected-mode application can have undesirable effects if the corresponding interrupt attempts to reflect the interrupt to V86 mode.

Virtual devices that need immediate execution of an interrupt should use the Exec_Int service in a nested execution block.

Uses

Client_CS, Client_EIP, Client_Flags, Flags

See Also

Exec_Int