PfSnBeginBootPhase

NTSTATUS __stdcall PfSnBeginBootPhase(UINT64 Phase){
  NTSTATUS v1; 
  int v2; 
  int v3; 
  UINT64 v4; 
  int v6; 
  KDPC *EnablePrefetcherTimer; 
  union _LARGE_INTEGER Timeout; 
  if( (unsigned int)Phase >= 5 )
    return -1073741811;
  v1 = 0;
  if( !(_DWORD)Phase )
  {
    EtwRegister(&MS_Kernel_Prefetch_Provider, 0i64, 0i64, &RegHandle);
    PfSnDetermineEnablePrefetcher();
    PfSnUpdatePrefetcherFlags(3ui64, 1ui64);
    Timeout.QuadPart = -3000000000i64;
    PfSnQueueEnablePrefetcherTimer(&Timeout);
    return v1;
  }
  v2 = Phase - 1;
  if( !v2 )
    goto LABEL_12;
  v3 = v2 - 1;
  if( !v3 )
  {
    PfSnUpdatePrefetcherFlags(4ui64, 1ui64);
    v4 = 17i64;
LABEL_6:
    PfSnUpdatePrefetcherFlags(v4, 0i64);
    return v1;
  }
  v6 = v3 - 1;
  if( !v6 )
  {
    if( (PfSnUpdatePrefetcherFlags(8ui64, 1ui64) & 4) == 0 )
      return v1;
LABEL_12:
    v4 = 1i64;
    goto LABEL_6;
  }
  if( v6 == 1 )
  {
    EnablePrefetcherTimer = PfSnAllocateEnablePrefetcherTimer(0x10ui64);
    if( EnablePrefetcherTimer )
    {
      PfSnUpdatePrefetcherFlags(0x10ui64, 1ui64);
      KiSetTimerEx((_KTIMER *)EnablePrefetcherTimer, (_LARGE_INTEGER)-600000000i64, 0i64, 0, EnablePrefetcherTimer + 1);
    }
  }
  return v1;
}

Referenced by:

IoInitSystemPreDrivers
PfPowerActionNotify
PfSnSetPrefetcherInformation