KiTraceSetTimer
VOID __stdcall KiTraceSetTimer(_KTIMER *Timer, _KDPC *Dpc, UINT8 ThreadTimer){
UINT64 v4;
__int64 v7;
UINT16 v8;
UINT64 Flag;
__int64 v10[2];
__int16 v11;
char v12;
char v13;
int v14;
char v15;
char v16;
__int16 v17;
int v18;
EVENT_DATA_DESCRIPTOR EventData;
v18 = 0;
v4 = *((unsigned __int16 *)Timer + 28);
v13 = 0;
v10[0] = *((_QWORD *)Timer + 3);
v14 = *((_DWORD *)Timer + 15);
v15 = *((_BYTE *)Timer + 1) >> 2;
_InterlockedAnd((volatile signed __int32 *)Timer, 0xFFFFFF7F);
KeGetPrcb(v4);
v10[1] = (__int64)Timer;
v11 = *(unsigned __int8 *)(v7 + 208);
v12 = *(_BYTE *)(v7 + 209);
v13 = 0;
v16 = 0;
v17 = *(_WORD *)(*((_QWORD *)KeGetCurrentThread() + 23) + 1088i64);
v13 = v15 != 0;
if( Dpc )
v13 = (v15 != 0) | 2;
if( *((_DWORD *)Timer + 15) )
{
v8 = 3922;
}
else
{
v8 = 3924;
if( !ThreadTimer )
v8 = 3923;
}
EventData.Reserved = 0;
EventData.Ptr = (unsigned __int64)v10;
EventData.Size = 32;
LODWORD(Flag) = ThreadTimer != 0 ? 1538 : 6298370;
EtwTraceKernelEvent(&EventData, 1ui64, 0x40020000ui64, v8, Flag);
}Referenced by:
No references.