EtwTiLogSuspendResumeProcess
VOID __fastcall EtwTiLogSuspendResumeProcess(INT64 a1, INT64 a2, INT64 r8_0, INT64 a4){
int v4;
UINT64 v7;
EVENT_DESCRIPTOR *v8;
INT64 v9;
int v10;
int v11;
__int64 *v12;
int v13;
int v14;
int v15;
int v16;
int v17;
UINT64 a3;
UINT64 v19;
EVENT_DATA_DESCRIPTOR UserData;
__int64 v21[28];
int v22;
if( (int)a1 >= 0 )
{
v22 = a1;
v4 = a4;
if( *((_BYTE *)KeGetCurrentThread() + 562) == 1 )
{
v7 = EtwThreatIntProvRegHandle;
if( EtwProviderEnabled(EtwThreatIntProvRegHandle, 0, 0xC00000ui64) )
{
v9 = *(_QWORD *)(a2 + 544);
if( v4 )
{
v10 = v4 - 1;
if( v10 )
{
v11 = v10 - 1;
if( v11 )
{
if( v11 != 1 )
return;
v12 = (__int64 *)&THREATINT_THAW_PROCESS;
}
else
{
v12 = THREATINT_FREEZE_PROCESS;
}
}
else
{
v12 = THREATINT_RESUME_PROCESS;
}
}
else
{
v12 = THREATINT_SUSPEND_PROCESS;
}
if( EtwEventEnabled(v7, (EVENT_DESCRIPTOR *)v12, v8) )
{
UserData.Reserved = 0;
UserData.Ptr = (unsigned __int64)&v22;
UserData.Size = 4;
v13 = EtwpTiFillProcessIdentity(v21, v9, &a3);
v14 = EtwpTiFillThreadIdentity((INT64)(&UserData + (unsigned int)(v13 + 1)), a2);
v16 = EtwpTiFillProcessIdentity(&UserData.Ptr + 2 * (unsigned int)(v14 + v15), r8_0, &v19);
EtwWrite(EtwThreatIntProvRegHandle, (EVENT_DESCRIPTOR *)v12, 0i64, (unsigned int)(v16 + v17), &UserData);
}
}
}
}
}Referenced by:
PsFreezeProcess
PsResumeProcess
PsSuspendProcess
PsThawProcess