include vmm.inc VMMcall Get_Crit_Section_Status mov [VM], ebx ; VM handle of owner mov [Claims], ecx ; number of times critical section claimed jc high_priority ; priority is Critical_Section_Boost or higher |
The Get_Crit_Section_Status service returns the claim count and owner of the critical section.
This service has no parameters.
The ECX register contains the critical section claim count, and the EBX register contains the handle identifying the virtual machine owning the critical section. If the ECX register is 0, the EBX register contains the handle of the current virtual machine.
The carry flag is set if the current virtual machine has an execution priority greater than or equal to Critical_Section_Boost, such as during a hardware interrupt simulation.
Windows 3.1 sometimes delays releasing the critical section until events are processed. This service causes the system to complete any delayed releases before the service returns the status. This may cause a task switch if another virtual machine has a delayed release.
If a virtual device must ensure that it owns the critical section to successfully complete an operation, it should call this service to make sure that the critical section status is up to date.
This is not an asynchronous service; it must not be called at interrupt time.
Flags