EtwTiLogSuspendResumeThread
VOID __fastcall EtwTiLogSuspendResumeThread(INT64 a1, INT64 a2, INT64 r8_0, CHAR a4){
UINT64 v7;
EVENT_DESCRIPTOR *v8;
INT64 v9;
EVENT_DESCRIPTOR *v10;
int v11;
int v12;
int v13;
int v14;
int v15;
int v16;
int v17;
UINT64 a3;
UINT64 v19;
EVENT_DATA_DESCRIPTOR UserData;
__int64 v21[32];
int v22;
if( (int)a1 >= 0 )
{
v22 = a1;
if( *((_BYTE *)KeGetCurrentThread() + 562) == 1 )
{
v7 = EtwThreatIntProvRegHandle;
if( EtwProviderEnabled(EtwThreatIntProvRegHandle, 0, 0x300000ui64) )
{
v9 = *(_QWORD *)(a2 + 544);
v10 = (EVENT_DESCRIPTOR *)THREATINT_SUSPEND_THREAD;
if( !a4 )
v10 = (EVENT_DESCRIPTOR *)&THREATINT_RESUME_THREAD;
if( EtwEventEnabled(v7, v10, v8) )
{
UserData.Reserved = 0;
UserData.Ptr = (unsigned __int64)&v22;
UserData.Size = 4;
v11 = EtwpTiFillProcessIdentity(v21, v9, &a3);
v12 = EtwpTiFillThreadIdentity((INT64)(&UserData + (unsigned int)(v11 + 1)), a2);
v14 = EtwpTiFillProcessIdentity(&UserData.Ptr + 2 * (unsigned int)(v12 + v13), *(_QWORD *)(r8_0 + 544), &v19);
v16 = EtwpTiFillThreadIdentity((INT64)(&UserData + (unsigned int)(v14 + v15)), r8_0);
EtwWrite(EtwThreatIntProvRegHandle, v10, 0i64, (unsigned int)(v16 + v17), &UserData);
}
}
}
}
}Referenced by:
PsResumeThread
PsSuspendThread