Get_VMM_Reenter_Count

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


The Get_VMM_Reenter_Count service 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.

Parameters

This service has no parameters.

Return Value

The ECX register is zero if the VMM has not been re-entered. Otherwise, the ECX register specifies the number of times the VMM has been re-entered.

Comments

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.

Uses

Flags

See Also

Call_Global_Event, Call_VM_Event, Schedule_Global_Event, Schedule_VM_Event