PfSnAsyncContextInitialize
VOID __fastcall PfSnAsyncContextInitialize(INT64 a1, INT64 a2, INT64 a3, INT64 a4){
int v6;
void *v8;
UINT64 v9;
struct _EX_RUNDOWN_REF *v10;
EX_RUNDOWN_REF *v11;
v6 = a4;
memset(a1, 0i64);
*(_QWORD *)(a1 + 208) = a2;
*(_QWORD *)(a1 + 32) = a3;
v8 = (void *)*((_QWORD *)KeGetCurrentThread() + 23);
*(_QWORD *)(a1 + 216) = v8;
ObfReferenceObject(v8);
v10 = PfSnReferenceProcessTrace(*(_QWORD *)(a1 + 216), v9);
v11 = *(EX_RUNDOWN_REF **)(a1 + 32);
*(_QWORD *)(a1 + 224) = v10;
ExInitializePushLock(v11);
*(_DWORD *)(a1 + 236) = PsGetPagePriorityThread((__int64)KeGetCurrentThread());
*(_QWORD *)a1 = 0i64;
*(_QWORD *)(a1 + 16) = PfSnAsyncPrefetchWorker;
*(_QWORD *)(a1 + 24) = a1;
if( v6 )
*(_DWORD *)(a1 + 240) |= 1u;
ExInitializePushLock((EX_RUNDOWN_REF *)(a1 + 40));
*(_QWORD *)(a1 + 176) = 0i64;
*(_QWORD *)(a1 + 192) = PfSnPowerBoostWorker;
*(_QWORD *)(a1 + 200) = a1 + 40;
KeInitializeTimerEx((PKTIMER)(a1 + 48), NotificationTimer);
KeInitializeDpc((PRKDPC)(a1 + 112), PfSnPowerBoostDpc, (PVOID)(a1 + 40));
}Referenced by:
PfSnPrefetchScenario