334 CurrentValue = *(
volatile LONG_PTR *)&SRWLock->Ptr;
349 if (
First->Exclusive)
355 Shared =
First->Last;
362 StackWaitBlock.
Last = &StackWaitBlock;
365 Shared->
Next = &StackWaitBlock;
366 First->Last = &StackWaitBlock;
368 Shared = &StackWaitBlock;
369 FirstWait = &StackWaitBlock;
414 (
PVOID)CurrentValue) == CurrentValue)
438 StackWaitBlock.
Last = &StackWaitBlock;
444 Shared =
First->Last;
447 Shared->
Next = &StackWaitBlock;
448 First->Last = &StackWaitBlock;
450 Shared = &StackWaitBlock;
451 FirstWait = &StackWaitBlock;
482 StackWaitBlock.
Last = &StackWaitBlock;
489 (
PVOID)CurrentValue) == CurrentValue)
511 (
PVOID)CurrentValue) == CurrentValue)
volatile struct _RTLP_SRWLOCK_SHARED_WAKE * Next
PRTLP_SRWLOCK_SHARED_WAKE LastSharedWake
typedef __ALIGNED(16) struct _EX_PUSH_LOCK_WAIT_BLOCK
volatile struct _RTLP_SRWLOCK_WAITBLOCK * Next
static VOID NTAPI RtlpAcquireSRWLockSharedWait(IN OUT PRTL_SRWLOCK SRWLock, IN OUT PRTLP_SRWLOCK_WAITBLOCK FirstWait OPTIONAL, IN OUT PRTLP_SRWLOCK_SHARED_WAKE WakeChain)
FORCEINLINE VOID YieldProcessor(VOID)
#define RTL_SRWLOCK_CONTENDED
#define InterlockedCompareExchangePointer
volatile struct _RTLP_SRWLOCK_WAITBLOCK * Last
#define RTL_SRWLOCK_OWNED
PRTLP_SRWLOCK_SHARED_WAKE SharedWakeChain
#define RTL_SRWLOCK_SHARED
static PRTLP_SRWLOCK_WAITBLOCK NTAPI RtlpAcquireWaitBlockLock(IN OUT PRTL_SRWLOCK SRWLock)
static VOID NTAPI RtlpReleaseWaitBlockLock(IN OUT PRTL_SRWLOCK SRWLock)