Build_Int_Stack_Frame

include vmm.inc

mov     cx, Segment        ; code segment of routine to call
mov     edx, Offset        ; offset of routine to call
VMMCall Build_Int_Stack_Frame
 

Prepares the current virtual machine to execute an interrupt routine. This service saves the current Client_CS, Client_IP, and Client_Flags registers on the virtual machine's stack and sets the Client_CS and Client_IP registers to the address of the interrupt routine specified by the Segment and Offset parameters. When execution resumes in the virtual machine (such as when the Resume_Exec service is called), the virtual machine executes the interrupt routine. The interrupt routine continues to run until it executes an iret instruction. Uses Client_CS, Client_EIP, Client_ESP, Client_Flags, Flags.

Segment
Segment address or segment selector for the code segment containing the interrupt routine.
Offset
Offset of interrupt routine. If the specified code segment is a 16-bit segment, the high word of this parameter must be 0.

The following example executes the interrupt routine in the code segment specified by

My_Segment at the offset My_Offset:

VMMCall Begin_Nest_Exec
mov     cx, [My_Segment]
mov     edx, [My_Offset]
VMMCall Build_Int_Stack_Frame
VMMCall Resume_Exec
VMMCall End_Nest_Exec
 

See Also

Simulate_Far_Call