PpmResetPerfTimes
__int64 __fastcall PpmResetPerfTimes(__int64 a1, __int64 a2){
__int64 v2;
_OWORD *v3;
_KPRCB *v4;
UINT64 v5;
__int64 result;
v2 = *(_QWORD *)(a1 + 16);
if( v2 )
{
v3 = (_OWORD *)(v2 + 32);
if( *(_BYTE *)(a1 + 60) )
{
v4 = (_KPRCB *)(a1 - 33128);
PpmResetPerformanceAccumulation((LARGE_INTEGER *)(a1 - 33128));
LOBYTE(v5) = 1;
PpmSnapPerformanceAccumulation(v4, v5, 0i64, 0i64, (_PROC_PERF_CHECK_SNAP *)(v2 + 32));
}
else
{
LOBYTE(a2) = 1;
PpmHvSnapPerformanceAccumulation((_QWORD *)a1, a2, 0i64, (_QWORD *)(v2 + 32));
}
*(_OWORD *)(v2 + 224) = *v3;
*(_OWORD *)(v2 + 240) = *(_OWORD *)(v2 + 48);
*(_OWORD *)(v2 + 256) = *(_OWORD *)(v2 + 64);
*(_OWORD *)(v2 + 272) = *(_OWORD *)(v2 + 80);
*(_OWORD *)(v2 + 288) = *(_OWORD *)(v2 + 96);
*(_OWORD *)(v2 + 304) = *(_OWORD *)(v2 + 112);
*(_QWORD *)(v2 + 8) = *(_QWORD *)v3;
*(_QWORD *)v2 = *(_QWORD *)(v2 + 40);
*(_QWORD *)(v2 + 16) = *(_QWORD *)(v2 + 48);
result = *(unsigned int *)(v2 + 120);
*(_DWORD *)(v2 + 24) = result;
}
return result;
}Referenced by:
PpmCheckProcessorInit
PpmCheckReset
PpmCheckResetProcessors
PpmResetPerfEngineForProcessorEx