include vmm.inc Control_Dispatch Message, Procedure |
The Control_Dispatch macro dispatches the given control message to the specified procedure.
Message
Specifies a control message value. It can be one of the following:
Value | Description |
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 restarting (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 restarting (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 restart 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_Executable | Virtual machine being destroyed. |
VM_Resume | Virtual machine execution resumed. |
VM_Suspend | Virtual machine execution suspended. |
VM_Terminate | Virtual machine begin destroyed. |
Procedure
Specifies the name of the procedure to which to dispatch the message.
This macro has no return value.
This macro is typically used in conjunction with the Begin_Control_Dispatch and End_Control_Dispatch macros to build a dispatch table. The Control_Dispatch macro can be used without the Begin_Control_Dispatch macro, but becomes the programmer's responsibility to declare a procedure in locked code (VxD_LOCKED_CODE_SEG), and clear the carry flag for any messages not processed.