Claim_Critical_Section

include vmm.inc

mov     eax, Claims
mov     ecx, Flags
VMMCall Claim_Critical_Section
 

Increments the claim count by the specified value. It has the same effect as calling the Begin_Critical_Section service repeatedly. Uses Flags.

Claims
Number of times to claim the critical section. Zero is a valid number, but is ignored. Claims must be a value less than 65536, otherwise this function treats it as if it were zero.
Flags
Action to take when interrupts occur while the virtual machine is blocked waiting for the critical section. This parameter can be a combination of the following values:
Block_Enable_Ints Service interrupts in the virtual machine even if the virtual machine does not currently have interrupts enabled. This forces interrupts to be enabled. This flag is relevant only if either Block_Svc_Ints or Block_Svc_If_Ints_Locked is set.
Block_Svc_If_Ints_Locked Service events and simulated interrupts in the virtual machine if the thread blocks for the critical section and the VMStat_V86IntsLocked flag is set.
Block_Svc_Ints Service events and simulated interrupts in the virtual machine if the thread blocks for the critical section.
Block_Thread_Idle Consider the thread to be idle if it blocks for the critical section.

The Block_Poll value is reserved and must not be used with this service.

See Also

Adjust_Exec_Priority, Begin_Critical_Section, End_Critical_Section