Virtual Devices (3.1) (vdag31qh.hlp) (
Table of Contents;
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
System_Control
◄Up► ◄Next► ◄Previous►
────────────────────────────────────────────────────────────────────────────
include vmm.inc
mov eax, Message ; system control message
mov ebx, VM ; VM handle (if needed by message)
mov esi, Param1 ; message-specific parameter
mov edi, Param2 ; message-specific parameter
mov edx, Param3 ; message-specific parameter
VMMcall System_Control
jc error ; carry set if error
The System_Control service sends system control messages to all the virtual
devices and, depending on the message, to the VMM.
Parameter Description
────────────────────────────────────────────────────────────────────────────
Message Specifies the system control message. This parameter can be one
of the following values:
Value Meaning
─────────────────────────────────────────────────────────────────
Begin_PM_App A protected-mode application is starting
Close_VM_Notify A virtual machine is closing
Create_VM A virtual machine is being created
Critical_Reboot_Notify System is rebooting (interrupt disabled)
Debug_Query Requests for virtual device's debugging
interface
Destroy_VM A virtual machine is being destroyed
Device_Init Virtual devices initializing (interrupts
enabled)
Device_Reboot_Notify System is rebooting (interrupts enabled)
End_PM_App A protected-mode application is ending
Init_Complete All virtual devices have initialized
Power_Event Power is being suspended or resumed
Reboot_Processor Virtual device must reboot system if it
can
Set_Device_Focus A virtual device is taking the focus
Sys_Critical_Exit System is terminating (interrupt
disabled)
Sys_Critical_Init Virtual devices initializing (interrupts
disabled)
Sys_VM_Init System VM is being created
Sys_VM_Terminate System VM is being destroyed
System_Exit System is terminating (interrupts
enabled)
VM_Critical_Init Virtual machine being created (interrupts
disabled)
VM_Init Virtual machine being created (interrupts
enabled)
VM_Not_Executeable Virtual machine being destroyed
VM_Resume Virtual machine execution resumed
VM_Suspend Virtual machine execution suspended
VM_Terminate Virtual machine begin destroyed
For more information about these messages, see the individual
message descriptions.
VM Specifies a handle identifying a virtual machine. This parameter
is not required by every system control message.
Param1 Specifies a message-specific parameter.
Param2 Specifies a message-specific parameter.
Param3 Specifies a message-specific parameter.
Return Value
The carry flag is clear if the service is successful. Otherwise, the carry
flag is set to indicate an error.
If the Create_VM message is successful, the EBX register contains the new
virtual machine handle.
Comments
Although virtual devices may receive many of the system control messages,
they may send only the following messages:
Message Restructions
────────────────────────────────────────────────────────────────────────────
Create_VM May only be sent by the virtual shell device.
Destroy_VM May only be sent by the virtual shell device.
Set_Device_Focus May be sent by any virtual device. If the device ID is
zero, all devices with settable focus must set their focus
to the specified virtual machine.
End_PM_App May only be sent by the virtual MS-DOS manager.
Virtual devices must send and reply to messages correctly to prevent erratic
system behavior.
This service uses the ECX register, therefore the register cannot be used to
pass data through to the virtual device receiving the control message.
Uses
Flags, EBX if Create_VM
♦