Exec_VxD_Int


include vmm.inc

push    dword ptr Interrupt
VMMcall Exec_VxD_Int

Executes the specified software interrupt. Virtual devices use this service to call MS-DOS or BIOS functions outside the context of a nested execution block.

Interrupt

Number of the interrupt to execute.

Before calling this service, a virtual device must set registers to values that are appropriate for the specified software interrupt. This service supports all MS-DOS and BIOS functions that are supported in protected-mode programs.

This service does not change the client registers and flags, so there is no need for the virtual device to save and restore the client register structure. This service also pops the interrupt number from the stack.

The following examples calls the MS-DOS function Get Version (Interrupt 21h, Function 30h):


mov     ax, 3000h
push    dword ptr 21h
VMMcall Exec_VxD_Int
mov     [Major], al     ; major MS-DOS version
mov     [Minor], ah     ; minor MS-DOS version