PfSnInitializePrefetcher

INT64 __fastcall PfSnInitializePrefetcher(INT64 a1, INT64 a2, WCHAR a3){
  _KDPC *PoolWithTag; 
  struct _UNICODE_STRING DestinationString; 
  stru_140C501A8.Count = 1;
  SpinLock = 0i64;
  qword_140C50188 = (__int64)&PfSnGlobals;
  PfSnGlobals = (__int64)&PfSnGlobals;
  stru_140C501A8.Owner = 0i64;
  qword_140C501A0 = &qword_140C50198;
  qword_140C50198 = &qword_140C50198;
  stru_140C501A8.Event.Header.WaitListHead.Blink = &stru_140C501A8.Event.Header.WaitListHead;
  stru_140C501A8.Event.Header.WaitListHead.Flink = &stru_140C501A8.Event.Header.WaitListHead;
  DestinationString = 0i64;
  stru_140C501A8.Contention = 0;
  LOWORD(stru_140C501A8.Event.Header.Lock) = 1;
  stru_140C501A8.Event.Header.Size = 6;
  stru_140C501A8.Event.Header.SignalState = 0;
  dword_140C501E4 = 0;
  RtlInitUnicodeString(&DestinationString, L"\\KernelObjects\\PrefetchTracesReady", a3);
  PfpCreateEvent(&DestinationString, SynchronizationEvent, &EventOut);
  PfSnPrefetchCacheCtxInitialize((INT64)&qword_140C501F8);
  RegHandle = 0i64;
  PoolWithTag = (_KDPC *)ExAllocatePoolWithTag(NonPagedPoolNx, 0xA0ui64, 0x66506343ui64);
  if( PoolWithTag )
  {
    *(_QWORD *)&PoolWithTag->TargetInfoAsUlong = 0i64;
    PoolWithTag->ProcessorHistory = (unsigned __int64)&PoolWithTag->DpcListEntry;
    PoolWithTag->DpcListEntry.Next = &PoolWithTag->DpcListEntry;
    PoolWithTag->Type = 8;
    PoolWithTag->DeferredRoutine = 0i64;
    HIDWORD(PoolWithTag->DpcData) = 0;
    LOWORD(PoolWithTag->DpcData) = 0;
    PoolWithTag[1].DeferredRoutine = PfSnTracingStateDpcRoutine;
    PoolWithTag[1].TargetInfoAsUlong = 275;
    PoolWithTag[1].DeferredContext = PoolWithTag;
    PoolWithTag[1].DpcData = 0i64;
    PoolWithTag[1].ProcessorHistory = 0i64;
    PoolWithTag[2].ProcessorHistory = (unsigned __int64)PfSnTracingStateExWorkerRoutine;
    PoolWithTag[2].DeferredRoutine = (void(__fastcall *)(_KDPC *, void *, void *, void *))PoolWithTag;
    *(_QWORD *)&PoolWithTag[2].TargetInfoAsUlong = 0i64;
    KiSetTimerEx((_KTIMER *)PoolWithTag, (_LARGE_INTEGER)-6000000000i64, 0i64, 0, PoolWithTag + 1);
  }
  return 0i64;
}

Referenced by:

No references.