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