PpmCheckStart
VOID __fastcall PpmCheckStart(_PPM_CHECK_PIPELINE_ID NewPipeline){
__int64 v1;
__int64 v2;
int v3;
REGHANDLE v4;
int v5;
int v6;
int v7;
__int64 v8;
INT64 CurrentQpc;
_EVENT_DATA_DESCRIPTOR UserData;
__int64 *v11;
__int64 v12;
int *v13;
__int64 v14;
v1 = NewPipeline;
*(&PopIrpWorkerControlEvent + 313) = NewPipeline;
LODWORD(v2) = RtlGetInterruptTimePrecise(&CurrentQpc);
*(&PopIrpWorkerControlEvent + 152) = v2;
v3 = 0;
v8 = *(&PopIrpWorkerControlEvent + 159);
v7 = v1;
if( PpmEtwRegistered )
{
v4 = PpmEtwHandle;
if( EtwEventEnabled(PpmEtwHandle, &PPM_ETW_PERF_CHECK_START) )
{
*(_QWORD *)&UserData.Size = 8i64;
UserData.Ptr = (unsigned __int64)&PopIrpWorkerControlEvent + 1216;
v12 = 8i64;
v11 = &v8;
v14 = 4i64;
v13 = &v7;
EtwWriteEx(v4, &PPM_ETW_PERF_CHECK_START, 0i64, 0, 0, 0, 3u, &UserData);
}
}
*(&PopIrpWorkerControlEvent + 133) = *(_QWORD *)(*(&PopIrpWorkerControlEvent + 154) + 8 * v1);
if( !*(&PopIrpWorkerControlEvent + 133) )
*(&PopIrpWorkerControlEvent + 133) = **(&PopIrpWorkerControlEvent + 154);
v5 = 0;
*(&PopIrpWorkerControlEvent + 268) = 0;
if( *(&stru_140C23628 + 440) >= *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart )
v5 = 1;
if( *(&stru_140C23628 + 439) >= *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart )
v3 = 1;
if( *(&PopIrpWorkerControlEvent + 315) != v5 || *(&PopIrpWorkerControlEvent + 314) != v3 )
{
PpmPerfSetAllDomainsToUpdate();
*(&PopIrpWorkerControlEvent + 315) = v6;
*(&PopIrpWorkerControlEvent + 314) = v3;
}
PpmCheckRun(0i64, 0i64, 0i64, 0i64);
}Referenced by:
PpmCheckCustomRun
PpmCheckPeriodicStart