PerfLogSpinLockAcquire

VOID __stdcall PerfLogSpinLockAcquire(
        VOID *SpinLockAddress,
        UINT64 AcquireTime,
        UINT64 WaitTimeInCycles,
        UINT64 SpinCount,
        UINT64 InterruptCount,
        UINT8 AcquireMode){
  _BYTE *EtwSupport; 
  __int64 v8; 
  __int64 v9; 

  EtwSupport = KeGetCurrentPrcb()->EtwSupport;
  v8 = (unsigned __int8)EtwSupport[272];
  if( (unsigned __int8)v8 < 8u )
  {
    EtwSupport[272] = v8 + 1;
    v9 = 32 * v8;
    *(_DWORD *)&EtwSupport[v9 + 40] = InterruptCount;
    EtwSupport[v9 + 44] = AcquireMode;
    *(_QWORD *)&EtwSupport[v9 + 16] = AcquireTime;
    *(_DWORD *)&EtwSupport[v9 + 36] = SpinCount;
    *(_QWORD *)&EtwSupport[v9 + 24] = SpinLockAddress;
    *(_DWORD *)&EtwSupport[v9 + 32] = WaitTimeInCycles;
  }
  else
  {
    ++*((_DWORD *)EtwSupport + 69);
  }
}

Referenced by:

ExpTryAcquireSpinLockSharedAtDpcLevelInstrumented