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