EtwpTraceProcessorTrace
VOID *__stdcall EtwpTraceProcessorTrace(VOID **a1, UINT64 a2){
_ETHREAD *v2;
int v3;
_ETHREAD *CurrentThread;
VOID *result;
_QWORD *v6;
_QWORD v7[2];
int UniqueProcess;
int UniqueThread;
__int64 v10;
__int128 v11;
int v12;
int v13;
v13 = 0;
v11 = 0i64;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
result = KeGetCurrentPrcb();
if( *((_ETHREAD **)result + 3) != CurrentThread && (v3 & 0x1800) != 0 )
{
v7[0] = a1;
v6 = a1[127];
v12 = v3;
if( !v2 )
v2 = CurrentThread;
UniqueProcess = (int)v2->Cid.UniqueProcess;
UniqueThread = (int)v2->Cid.UniqueThread;
v7[1] = *(_QWORD *)a2;
v10 = v6[1];
return(VOID *)(*(__int64(__fastcall **)(_QWORD, _QWORD *))(v6[2] + 16i64))(*v6, v7);
}
return result;
}Referenced by:
EtwpLogContextSwapEvent
EtwpLogKernelEvent
EtwpLogSystemEventUnsafe