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