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