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