KiInitializeForceIdle
INT64 __fastcall KiInitializeForceIdle(INT64 a1){
INT64 result;
if( !*(_DWORD *)(a1 + 36) )
{
KiForceIdleLock = 0i64;
KeInitializeDpc((PRKDPC)&KiForceIdleStartDpc, KiForceIdleStartDpcRoutine, 0i64);
KeInitializeDpc(&KiForceIdleStopDpc, KiForceIdleStopDpcRoutine, 0i64);
BYTE1(KiForceIdleStartDpc) = 3;
KiForceIdleStopDpc.Importance = 3;
if( !KiSerializeTimerExpiration )
KiForceIdleDisabled = 1;
}
KeInitializeDpc((PRKDPC)(a1 + 33304), KiForceIdleParkUnparkDpcRoutine, 0i64);
*(_BYTE *)(a1 + 33305) = 3;
result = *(_QWORD *)(a1 + 33360);
if( !result )
{
result = 1280i64;
*(_WORD *)(a1 + 33306) = *(_DWORD *)(a1 + 36) + 1280;
}
return result;
}Referenced by:
KeInitializeTimerTable