PfSnPrefetchScenario

NTSTATUS __stdcall PfSnPrefetchScenario(VOID *Scenario, UINT64 Flags){
  unsigned int v2; 
  VOID **PoolWithTag; 
  _WORK_QUEUE_ITEM *v5; 
  int v6; 
  NTSTATUS v7; 
  _EX_RUNDOWN_REF RunRef; 

  RunRef.Count = 0i64;
  v2 = Flags;
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0xF8ui64, 1632658243i64);
  v5 = (_WORK_QUEUE_ITEM *)PoolWithTag;
  if( PoolWithTag )
  {
    PfSnAsyncContextInitialize(PoolWithTag, (__int64)Scenario, (__int64)&RunRef, (v2 >> 4) & 1);
    Scenario = 0i64;
    ExAcquireRundownProtection(&RunRef);
    KeQueryPriorityThread((_ETHREAD *)KeGetCurrentThread());
    ExQueueWorkItem(v5, (_WORK_QUEUE_TYPE)(v6 + 32));
    v7 = 0;
    ExWaitForRundownProtectionRelease(&RunRef);
  }
  else
  {
    v7 = -1073741670;
  }
  if( Scenario )
    ExFreePoolWithTag(Scenario, 0);
  return v7;
}

Referenced by:

PfSnBeginScenario