include vmm.inc
VMMCall Get_VMM_Reenter_Count
jecxz not_reentered ; ecx is zero if VMM not re-entered
mov [Count], ecx ; otherwise, number of times re-entered
Returns the number of times the VMM has been re-entered as a result of a hardware interrupt, page fault, or other processor exception. Virtual devices typically use this service to determine whether they can call VMM services that do not re-enter. Uses Flags.
If this service returns a nonzero value, a virtual device may call only VMM services that are asynchronous. If a virtual device must call other VMM services, the virtual device can schedule an event using a service such as Schedule_Global_Event. The system calls the event's callback procedure when all VMM services are available.
The Call_Global_Event and Call_VM_Event services call this service to determine whether the event callback procedure should be called immediately.
Call_Global_Event, Call_VM_Event, Schedule_Global_Event, Schedule_VM_Event