PpmScaleIdleStateValues

VOID __stdcall PpmScaleIdleStateValues(_PROCESSOR_POWER_STATE *PpmState){
  _PROC_PERF_CONSTRAINT *Constraint; 
  _PROC_PERF_DOMAIN *Domain; 
  unsigned int GuaranteedPercent; 
  unsigned int v5; 
  int DemotePercentBase; 
  unsigned int LpIndexFromProcessorIndex; 

  if( PpmState->IdlePolicy.AllowScaling )
  {
    Constraint = PpmState->CheckContext.Constraint;
    if( Constraint )
    {
      Domain = PpmState->CheckContext.Domain;
      if( Domain )
      {
        GuaranteedPercent = Domain->GuaranteedPercent;
        if( Constraint->Selection.SelectedPercent < GuaranteedPercent )
          LOBYTE(GuaranteedPercent) = Constraint->Selection.SelectedPercent;
        v5 = (unsigned __int8)GuaranteedPercent;
        DemotePercentBase = PpmState->IdlePolicy.DemotePercentBase;
        PpmState->IdlePolicy.PromotePercent = (unsigned __int8)GuaranteedPercent
                                            * (unsigned __int8)GuaranteedPercent
                                            * (unsigned int)PpmState->IdlePolicy.PromotePercentBase
                                            / 0x2710;
        PpmState->IdlePolicy.DemotePercent = (unsigned __int8)GuaranteedPercent
                                           * (unsigned int)(unsigned __int8)GuaranteedPercent
                                           * DemotePercentBase
                                           / 0x2710;
        if( PpmState->Hypervisor == ProcHypervisorHvCounters )
        {
          LpIndexFromProcessorIndex = HvlGetLpIndexFromProcessorIndex(HIDWORD(PpmState[-64].IdleTimeEntry));
          HvlRegisterLogicalProcessorFrequency((_KPRCB *)LpIndexFromProcessorIndex, v5);
        }
      }
    }
  }
}

Referenced by:

PpmPerfApplyProcessorState
PpmResetIdlePolicy