PfSnPrefetchScenario

__int64 __fastcall PfSnPrefetchScenario(void *a1, unsigned int a2){
  WORK_QUEUE_ITEM *PoolWithTag; 
  WORK_QUEUE_ITEM *v5; 
  NTSTATUS PriorityThread; 
  unsigned int v7; 
  struct _EX_RUNDOWN_REF RunRef; 
  RunRef.Count = 0i64;
  PoolWithTag = (WORK_QUEUE_ITEM *)ExAllocatePoolWithTag(NonPagedPoolNx, 0xF8ui64, 0x61506343ui64);
  v5 = PoolWithTag;
  if( PoolWithTag )
  {
    PfSnAsyncContextInitialize((INT64)PoolWithTag, (INT64)a1, (INT64)&RunRef, (a2 >> 4) & 1);
    a1 = 0i64;
    ExAcquireRundownProtection(&RunRef);
    PriorityThread = KeQueryPriorityThread(KeGetCurrentThread());
    ExQueueWorkItem(v5, (WORK_QUEUE_TYPE)(PriorityThread + 32));
    v7 = 0;
    ExWaitForRundownProtectionRelease(&RunRef);
  }
  else
  {
    v7 = -1073741670;
  }
  if( a1 )
    ExFreePoolWithTag(a1, 0);
  return v7;
}

Referenced by:

PfSnBeginScenario