mov ebx, VMHandle mov edi, ThreadHandle mov edx, RefData mov ebp, OFFSET32 Client_Reg_Struc ;set up CY flag if appropriate call [PriorityEventCallback]
Performs programmer-defined processing of a priority event for a virtual machine or thread. PriorityEventCallback is a programmer-defined callback function installed by the Call_Priority_VM_Event service. The callback function can modify the EAX, EBX, ECX, EDX, ESI, EDI, and Flags registers. It must return with interrupts enabled and the direction flag clear (up).
VMHandle
Handle of the current virtual machine. If a timeout occurs, this handle may not be valid. In such cases, the callback function should use the Get_Cur_VM_Handle service to get the handle of the current virtual machine.
ThreadHandle
Handle of the current thread. If a timeout occurs, this handle may not be valid. In such cases, the callback function should use the Get_Cur_Thread_Handle service to get the handle of the current thread.
RefData
Reference data supplied when the event was scheduled.
Client_Reg_Struc
Address of a Client_Reg_Struc structure containing the contents of the virtual machine's registers.
If the PEF_Time_Out bit was set when the event was scheduled, additional information is given in the flags register, as described in Call_Priority_VM_Event. Such an event callback procedure should begin as follows:
mov hThisEvent, 0 ; (See 'Cancelling Events') ; (Must preserve carry!) jc Event_Timed_Out ; Carry set means event timed out ; Else event processed normally
If a timeout occurs, any priority boost is automatically canceled, even if the the PEF_Dont_Unboost flag was specified in the Call_Priority_VM_Event function that initiated the event.
For additional information about event callbacks, see Event Callbacks.
See also Call_Priority_VM_Event, Client_Reg_Struc, Get_Cur_Thread_Handle, Get_Cur_VM_Handle