include vmm.inc
Control_Dispatch Message, Procedure
Control_Dispatch Message, Procedure, CallType, <Param1, Param2, ...>
Dispatches the given control message to the specified procedure.
| Value | Description |
|---|---|
| Begin_PM_App | A protected-mode application is starting. |
| Close_VM_Notify | A virtual machine is closing. |
| Create_Thread | New thread being created. |
| 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_Thread | Thread being destroyed. |
| 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. |
| PNP_New_Device | New devnode (directed). |
| 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_Dynamic_Device_Exit | Dynamic VxD being unloaded (directed). |
| Sys_Dynamic_Device_Init | Dynamic VxD being loaded (directed). |
| Sys_VM_Terminate | System VM is being destroyed. |
| System_Exit | System is terminating (interrupts enabled). |
| Terminate_Thread | Thread being terminated. |
| Thread_Init | Thread being initialized. |
| Thread_Not_Executeable | Thread has stopped executing. |
| VM_Critical_Init | Virtual machine being created (interrupts disabled). |
| VM_Init | Virtual machine being created (interrupts enabled). |
| VM_Not_Executable | Virtual machine has stopped executing. |
| VM_Resume | Virtual machine execution resumed. |
| VM_Suspend | Virtual machine execution suspended. |
| VM_Terminate | Virtual machine begin destroyed. |
| W32_DeviceIoControl | Win32 DeviceIoControl entry (directed). |
Another value defined in vmm.h is also acceptable.
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.
If you use the CallType variant of this macro, then this macro may not be combined with the Begin_Control_Dispatch and End_Control_Dispatch macros.
Begin_Control_Dispatch, End_Control_Dispatch