Virtual Devices (3.1) (vdag31qh.hlp) (Table of Contents; Topic list)
Build_Int_Stack_Frame
                                                     Up Next Previous
────────────────────────────────────────────────────────────────────────────
 
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
 
The Build_Int_Stack_Frame service 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.
 
Parameter  Description
────────────────────────────────────────────────────────────────────────────
 
Segment    Specifies the segment address or segment selector for the code
           segment containing the interrupt routine.
 
Offset     Specifies the offset of interrupt routine. If the specified code
           segment is a 16-bit segment, the high word of this parameter must
           be 0.
 
Return Value
 
This service has no return value.
 
Example
 
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
 
Uses
 
Client_CS, Client_EIP, Client_ESP, Client_Flags, Flags
 
See Also
 
Simulate_Far_Call