PpmResetPlatformIdleAccounting
VOID __stdcall PpmResetPlatformIdleAccounting(_PLATFORM_IDLE_ACCOUNTING *Accounting){
unsigned int StateCount;
unsigned int ResetCount;
unsigned __int64 *p_MinTime;
__int64 v5;
unsigned __int64 *v6;
__int64 v7;
unsigned __int64 v8;
StateCount = Accounting->StateCount;
ResetCount = Accounting->ResetCount;
memset(Accounting, 0i64, 1008 * StateCount + 24);
if( StateCount )
{
p_MinTime = &Accounting->State[0].IdleTimeBuckets[0].MinTime;
v5 = StateCount;
do
{
*(p_MinTime - 20) = -1i64;
v6 = p_MinTime;
v7 = 26i64;
do
{
*v6 = -1i64;
v6 += 4;
--v7;
}
while( v7 );
p_MinTime += 126;
--v5;
}
while( v5 );
}
Accounting->StateCount = StateCount;
Accounting->ResetCount = ResetCount + 1;
v8 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
Accounting->TimeUnit = PpmIdleBucketTimeInQpc;
Accounting->StartTime = v8;
}Referenced by:
PpmInstallCoordinatedIdleStates
PpmInstallPlatformIdleStates