PpmCheckRun
VOID __stdcall PpmCheckRun(_KDPC *Dpc, VOID *Context, VOID *Arg1, VOID *Arg2){
int v4;
unsigned __int8(__fastcall *v5)(__int64, VOID *, _QWORD, VOID *);
__int64 v6;
REGHANDLE v7;
_EVENT_DATA_DESCRIPTOR UserData;
v4 = *(&PopIrpWorkerControlEvent + 268);
v5 = *(unsigned __int8(__fastcall **)(__int64, VOID *, _QWORD, VOID *))(*(&PopIrpWorkerControlEvent + 133)
+ 8i64 * *(&PopIrpWorkerControlEvent + 268));
if( v5 )
{
while( 1 )
{
v6 = (unsigned int)(v4 + 1);
*(&PopIrpWorkerControlEvent + 268) = v6;
if( !v5(v6, Context, v5, Arg2) )
break;
v4 = *(&PopIrpWorkerControlEvent + 268);
v5 = *(unsigned __int8(__fastcall **)(__int64, VOID *, _QWORD, VOID *))(*(&PopIrpWorkerControlEvent + 133)
+ 8i64 * *(&PopIrpWorkerControlEvent + 268));
if( !v5 )
goto LABEL_4;
}
}
else
{
LABEL_4:
PpmReleaseLock((INT64 *)&stru_140C23628 + 131);
if( PpmEtwRegistered )
{
v7 = PpmEtwHandle;
if( EtwEventEnabled(PpmEtwHandle, &PPM_ETW_PERF_CHECK_STOP) )
{
*(_QWORD *)&UserData.Size = 8i64;
UserData.Ptr = (unsigned __int64)&PopIrpWorkerControlEvent + 1216;
EtwWriteEx(v7, &PPM_ETW_PERF_CHECK_STOP, 0i64, 0, 0, 0, 1u, &UserData);
}
}
}
}Referenced by:
PpmCheckStart