PpmInitIdlePolicy

VOID __stdcall PpmInitIdlePolicy(){
  UINT64 v0; 
  UINT64 *v1; 
  __int64 v2; 
  UINT64 v3; 
  _UNICODE_STRING DestinationString; 
  UINT64 ResultDataSize; 
  UINT64 Type; 
  int Data; 

  PpmDefaultProfile.Settings[0].IdleTimeCheck = 50000;
  PpmDefaultProfile.Settings[1].IdleTimeCheck = 50000;
  v0 = 2 * PopQpcFrequency;
  Data = 0;
  PopIdleTransitionTimeout = 2 * PopQpcFrequency;
  LODWORD(ResultDataSize) = 0;
  LODWORD(Type) = 0;
  DestinationString = 0i64;
  *(_WORD *)&PpmDefaultProfile.Settings[0].AllowScaling = 0;
  *(_WORD *)&PpmDefaultProfile.Settings[1].AllowScaling = 0;
  *(_WORD *)&PpmDefaultProfile.Settings[0].IdlePromotePercent = 60;
  *(_WORD *)&PpmDefaultProfile.Settings[1].IdlePromotePercent = 60;
  PpmDefaultProfile.Settings[0].IdleDemotePercent = 40;
  PpmDefaultProfile.Settings[1].IdleDemotePercent = 40;
  if( !KdPitchDebugger )
    v0 = 90 * PopQpcFrequency;
  PopCoordinatedIdleExitTimeout = v0;
  v1 = (UINT64 *)&PpmIdleIntervalLimits;
  v2 = 26i64;
  do
  {
    v3 = v1[1];
    if( v3 != -1i64 )
      *v1 = PpmConvertTime(v3, 0x989680ui64, PopQpcFrequency);
    v1 += 3;
    --v2;
  }
  while( v2 );
  RtlInitUnicodeString(&DestinationString, L"Power-IdleStatesMax-Enabled");
  if( ZwQueryLicenseValue(&DestinationString, &Type, &Data, 4ui64, &ResultDataSize) >= 0
    && (_DWORD)ResultDataSize == 4
    && (_DWORD)Type == 4 )
  {
    PpmIdleRespectIdleStateMax = Data != 0;
  }
  if( PpmIdleDisableStatesAtBoot == -1 )
    PpmIdleDisableStatesAtBoot = 0;
}

Referenced by:

PoInitSystem