ExReleaseCacheAwarePushLockExclusive

VOID __stdcall ExReleaseCacheAwarePushLockExclusive(_EX_PUSH_LOCK_CACHE_AWARE_LEGACY *PushLock){
  _EX_PUSH_LOCK_CACHE_AWARE_LEGACY *v1; 
  volatile signed __int64 **v3; 
  _EX_PUSH_LOCK *v4; 

  v1 = PushLock + 64;
  v3 = (volatile signed __int64 **)PushLock;
  if( PushLock < PushLock + 64 )
  {
    do
    {
      v4 = (_EX_PUSH_LOCK *)*v3;
      if( (_InterlockedExchangeAdd64(*v3, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
        ExfTryToWakePushLock(v4);
      ++v3;
    }
    while( v3 < (volatile signed __int64 **)v1 );
  }
  KeAbPostRelease(PushLock);
}

Referenced by:

No references.