PfSnAsyncContextInitialize
INT64 __fastcall PfSnAsyncContextInitialize(_QWORD *a1, __int64 a2, __int64 a3, int a4){
_EPROCESS *Process;
_PFSN_TRACE_HEADER *v9;
unsigned __int64 *v10;
memset(a1, 0i64, 0xF8u);
a1[26] = a2;
a1[4] = a3;
Process = KeGetCurrentThread()->ApcState.Process;
a1[27] = Process;
ObfReferenceObject(Process);
v9 = PfSnReferenceProcessTrace((_EPROCESS *)a1[27]);
v10 = (unsigned __int64 *)a1[4];
a1[28] = v9;
ExInitializePushLock(v10);
*((_DWORD *)a1 + 59) = PsGetPagePriorityThread((_ETHREAD *)KeGetCurrentThread());
*a1 = 0i64;
a1[2] = PfSnAsyncPrefetchWorker;
a1[3] = a1;
if( a4 )
*((_DWORD *)a1 + 60) |= 1u;
ExInitializePushLock(a1 + 5);
a1[22] = 0i64;
a1[24] = PfSnPowerBoostWorker;
a1[25] = a1 + 5;
KeInitializeTimerEx((INT64)(a1 + 6), 0);
return(INT64)KeInitializeDpc((PRKDPC)(a1 + 14), PfSnPowerBoostDpc, a1 + 5);
}Referenced by:
PfSnPrefetchScenario