PpmPerfProcCapFloorSettingCallback

NTSTATUS __stdcall PpmPerfProcCapFloorSettingCallback(
        const _GUID *SettingGuid,
        UINT64 *NewValue,
        UINT64 ValueLength,
        PVOID Context){
  unsigned int v4; 
  int v5; 
  __int64 v7; 
  _BOOL8 v8; 
  unsigned int v9; 
  _KPRCB *Prcb; 
  _PROC_PERF_CONSTRAINT *Constraint; 
  NTSTATUS v12; 
  _PPM_POLICY_ACTION_MASK ActionMask; 
  GUID v15; 

  v4 = SettingGuid->Data4[7];
  v5 = ValueLength;
  v15 = GUID_PROC_CAP_BASE;
  v15.Data4[7] = v4;
  v7 = *(_QWORD *)&GUID_PROC_CAP_BASE.Data1 - *(_QWORD *)&SettingGuid->Data1;
  if( !v7 )
    v7 = *(_QWORD *)v15.Data4 - *(_QWORD *)SettingGuid->Data4;
  v8 = v7 == 0;
  PpmAcquireLock((_PPM_LOCK *)((char *)&stru_140C23628 + 1048));
  if( v5 != 4 || !NewValue )
    goto LABEL_13;
  v9 = *(_DWORD *)NewValue;
  if( v9 > 0x64 )
    v9 = 100;
  Prcb = KeGetPrcb(v4);
  if( Prcb )
  {
    Constraint = Prcb->PowerState.CheckContext.Constraint;
    if( Constraint )
    {
      if( v8 )
        Constraint->ProcCap = v9;
      else
        Constraint->ProcFloor = v9;
    }
    v12 = 0;
  }
  else
  {
LABEL_13:
    v12 = -1073741811;
  }
  ActionMask = (_PPM_POLICY_ACTION_MASK)14;
  PpmReapplyPerfPolicy(&ActionMask);
  return v12;
}

Referenced by:

No references.