PopIdleWakeNotifyWakeSource
void __fastcall PopIdleWakeNotifyWakeSource(int a1, int a2, __int64 a3, __int64 a4, __int64 a5){
_DWORD *v5;
NTSTATUS CurrentProcessorNumber;
v5 = PopIdleWakeContext;
if( PopIdleWakeContext && a1 == PpmDripsStateIndex && a2 >= 0 )
{
PopIdleWakeFinalizeWakeSource(a2, a3);
PopIdleWakeStopActiveIntervalAccounting(v5);
v5[10] = a2;
*((_OWORD *)v5 + 3) = *(_OWORD *)a3;
*((_OWORD *)v5 + 4) = *(_OWORD *)(a3 + 16);
*((_OWORD *)v5 + 5) = *(_OWORD *)(a3 + 32);
*((_OWORD *)v5 + 6) = *(_OWORD *)(a3 + 48);
*((_OWORD *)v5 + 7) = *(_OWORD *)(a3 + 64);
*((_OWORD *)v5 + 8) = *(_OWORD *)(a3 + 80);
*((_OWORD *)v5 + 9) = *(_OWORD *)(a3 + 96);
*((_OWORD *)v5 + 10) = *(_OWORD *)(a3 + 112);
*((_QWORD *)v5 + 22) = *(_QWORD *)(a3 + 128);
*((_QWORD *)v5 + 23) = a5;
*((_QWORD *)v5 + 1) = a5;
*((_QWORD *)v5 + 24) = a5 - a4;
CurrentProcessorNumber = KeGetCurrentProcessorNumberEx(0i64);
*v5 |= 0x10u;
v5[50] = CurrentProcessorNumber;
}
}Referenced by:
PpmExitCoordinatedIdle