KiTryToAcquireQueuedSpinLockInstrumented

UINT64 __stdcall KiTryToAcquireQueuedSpinLockInstrumented(_KSPIN_LOCK_QUEUE *LockQueue, UINT64 *SpinLock){
  struct _KPRCB *CurrentPrcb; 
  signed __int64 v3; 

  CurrentPrcb = KeGetCurrentPrcb();
  _m_prefetchw(SpinLock);
  if( *(_DWORD *)SpinLock
    || (v3 = _InterlockedCompareExchange64((volatile signed __int64 *)SpinLock, (signed __int64)LockQueue, 0i64)) != 0 )
  {
    _mm_pause();
    return 0i64;
  }
  else
  {
    ++CurrentPrcb->SynchCounters.SpinLockAcquireCount;
    return 1i64;
  }
}

Referenced by:

No references.