PfTInitialize
VOID __stdcall PfTInitialize(_PFP_TRACING_GLOBALS *TGlobals, UINT8 Reinitialize){
UINT8 v2;
_FAST_MUTEX *v3;
UINT8 v4;
_BYTE *v6;
unsigned int v7;
unsigned int v8;
_KEVENT *v9;
_PFFB_BUFFER_LIST_PARAMS Params;
int v11;
int v12;
int v13;
__int64 v14;
NTSTATUS(__stdcall *v15)(PFFB_BUFFER_LIST *);
void *v16;
v3 = (_FAST_MUTEX *)(TGlobals + 140);
v4 = v2;
if( v2 )
{
ExAcquireFastMutex(v3);
KeReleaseGuardedMutex(v3);
*((_OWORD *)TGlobals + 49) = 0i64;
*((_OWORD *)TGlobals + 50) = 0i64;
*((_QWORD *)TGlobals + 102) = 0i64;
}
else
{
memset(TGlobals, 0i64, 0x340u);
memset(&PfKernelGlobals.AccessBufferRef, 0i64, 0x58u);
*(_QWORD *)TGlobals = 0i64;
}
KeQueryTimeIncrement(v6);
PfKernelGlobals.AccessBufferAgeThreshold = 0x23C34600ui64 / v7;
*(_OWORD *)(TGlobals + 6) = 0i64;
*(_OWORD *)(TGlobals + 10) = 0i64;
*((_QWORD *)TGlobals + 7) = 0i64;
TGlobals[6] &= 0xFFFFFFF0;
*((_QWORD *)TGlobals + 7) = TGlobals + 12;
*((_QWORD *)TGlobals + 6) = TGlobals + 12;
*((_WORD *)TGlobals + 17) = 0;
*((_QWORD *)TGlobals + 5) = 0i64;
*((_WORD *)TGlobals + 16) = 2;
*((_OWORD *)TGlobals + 4) = 0i64;
*((_OWORD *)TGlobals + 5) = 0i64;
*((_QWORD *)TGlobals + 12) = 0i64;
*((_QWORD *)TGlobals + 12) = TGlobals + 22;
*((_QWORD *)TGlobals + 11) = TGlobals + 22;
v8 = TGlobals[16] & 0xFFFFFFF1;
*((_WORD *)TGlobals + 37) = 0;
*((_QWORD *)TGlobals + 10) = 0i64;
TGlobals[16] = v8 | 1;
*((_WORD *)TGlobals + 36) = 0;
if( v4 )
ExAcquireFastMutex(v3);
else
KeInitializeGuardedMutex(v3);
*((_QWORD *)TGlobals + 64) = TGlobals + 126;
*((_QWORD *)TGlobals + 63) = TGlobals + 126;
*((_QWORD *)TGlobals + 66) = TGlobals + 130;
*((_QWORD *)TGlobals + 65) = TGlobals + 130;
if( v4 )
KeReleaseGuardedMutex(v3);
else
PfTAccessTracingInitialize(TGlobals, &PfKernelGlobals, 0i64);
v9 = (_KEVENT *)(TGlobals + 34);
if( v4 )
{
KeResetEvent(v9);
KeResetEvent((_KEVENT *)(TGlobals + 40));
KeResetEvent((_KEVENT *)(TGlobals + 28));
KeResetEvent((_KEVENT *)(TGlobals + 50));
}
else
{
KeInitializeEvent((INT64)v9, 0, 0);
KeInitializeEvent((INT64)(TGlobals + 40), 0, 0);
KeInitializeEvent((INT64)(TGlobals + 28), 0, 0);
KeInitializeEvent((INT64)(TGlobals + 50), 0, 0);
}
Params = -827260927;
v16 = PfpSectInfoHandleFullBuffer;
v11 = 1280206416;
v15 = PfpSectInfoHandleOutOfBuffers;
v12 = 1;
v13 = 64;
v14 = 64i64;
PfFbBufferListInitialize(TGlobals + 56, &Params, v4);
InitializeSListHead((PSLIST_HEADER)TGlobals + 30);
TGlobals[124] = -1;
v16 = PfpEventHandleFullBuffer;
Params = -827260926;
v15 = PfpEventHandleOutOfBuffers;
v11 = 1279616592;
v12 = 512;
v13 = 48;
v14 = 64i64;
PfFbBufferListInitialize(TGlobals + 88, &Params, v4);
}Referenced by:
PfInitializeSuperfetch
PfSetSuperfetchInformation
PfTStart
PfpParametersPropagate