KiInitializeForceIdle
NTSTATUS __stdcall KiInitializeForceIdle(INT64 a1){
__int64 v2;
if( !*(_DWORD *)(a1 + 36) )
{
*(&KiSwapEvent + 21) = 0i64;
KeInitializeDpc((PRKDPC)&KiSwapEvent + 3, KiForceIdleStartDpcRoutine, 0i64);
KeInitializeDpc(&KiForceIdleStopDpc, KiForceIdleStopDpcRoutine, 0i64);
*(&KiSwapEvent + 193) = 3;
KiForceIdleStopDpc.Importance = 3;
if( !KiSerializeTimerExpiration )
KiForceIdleDisabled = 1;
}
KeInitializeDpc((PRKDPC)(a1 + 33304), KiForceIdleParkUnparkDpcRoutine, 0i64);
*(_BYTE *)(a1 + 33305) = 3;
v2 = *(_QWORD *)(a1 + 33360);
if( !v2 )
{
LODWORD(v2) = 1280;
*(_WORD *)(a1 + 33306) = *(_DWORD *)(a1 + 36) + 1280;
}
return v2;
}Referenced by:
KeInitializeTimerTable