Control_Dispatch

include vmm.inc

Control_Dispatch Message, Procedure


The Control_Dispatch macro dispatches the given control message to the specified procedure.

Parameters

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.

Return Value

This macro has no return value.

Comments

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.

See Also

Begin_Control_Dispatch, End_Control_Dispatch