KeUpdateGroupSchedulingConstants

VOID __stdcall KeUpdateGroupSchedulingConstants(INT64 a1, CHAR a2){
  char v2; 
  unsigned __int64 v3; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  v2 = a1;
  memset(&LockHandle, 0, sizeof(LockHandle));
  if( !(_BYTE)a1 )
    KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&KiSchedulingGroupLock, &LockHandle);
  v3 = 1000000 * (unsigned __int64)KiProcessorBlock->MHz / 0x3E8;
  KiCycleDivisorShortTerm = v3 * (unsigned int)PsDfssShortTermSharingMS;
  KiCycleDivisorLongTerm = v3 * (unsigned int)PsDfssLongTermSharingMS;
  KiCyclesPerGeneration = v3 * (unsigned int)PsDfssGenerationLengthMS;
  KiGroupSchedulingNumerator = PsDfssLongTermFraction1024;
  KiGenerationTicks = 10000
                    * (unsigned __int64)(unsigned int)PsDfssGenerationLengthMS
                    / (unsigned int)KeMaximumIncrement;
  KiAssignSchedulingGroupWeights(WeightBased, 1u, 0i64);
  if( !v2 )
  {
    KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
    __writecr8(LockHandle.OldIrql);
  }
}

Referenced by:

KiEnableGroupScheduling
PspReadDfssConfigurationValues