ExAcquireRundownProtectionCacheAware
UINT8 __stdcall ExAcquireRundownProtectionCacheAware(_EX_RUNDOWN_REF_CACHE_AWARE *RunRefCacheAware){
_EX_RUNDOWN_REF *v1;
signed __int64 v2;
v1 = (_EX_RUNDOWN_REF *)((char *)RunRefCacheAware->RunRefs
+ RunRefCacheAware->RunRefSize * (KeGetPcr()->Prcb.Number % RunRefCacheAware->Number));
_m_prefetchw(v1);
v2 = v1->Count & 0xFFFFFFFFFFFFFFFEui64;
if( v2 == _InterlockedCompareExchange64((volatile signed __int64 *)v1, v2 + 2, v2) )
return 1;
else
return ExfAcquireRundownProtection(v1);
}Referenced by:
MiProbeLockFrame
MiSwitchToTransition