PpmIdleSnapConcurrency
void __fastcall PpmIdleSnapConcurrency(PKSPIN_LOCK SpinLock, __int64 a2){
LARGE_INTEGER PerformanceCounter;
KSPIN_LOCK v5;
KSPIN_LOCK v6;
__int64 v7;
UINT8 *v8;
UINT64 v9;
__int16 v10;
PerformanceCounter = KeQueryPerformanceCounter(0i64);
_disable();
KxAcquireSpinLock(SpinLock);
v5 = SpinLock[2];
if( PerformanceCounter.QuadPart > v5 )
{
SpinLock[2] = PerformanceCounter.QuadPart;
v6 = PerformanceCounter.QuadPart - v5;
v7 = *((unsigned int *)SpinLock + 3);
SpinLock[3] += v6;
SpinLock[v7 + 4] += v6;
}
v8 = *(UINT8 **)a2;
v9 = 8i64 * *(unsigned int *)(a2 + 40);
*(_QWORD *)(a2 + 24) = SpinLock[3];
memmove(v8, (UINT8 *)SpinLock + 32, v9);
KxReleaseSpinLock(SpinLock);
if( (v10 & 0x200) != 0 )
_enable();
}Referenced by:
PpmParkSnapNodeStatistics