KeSetQuantumProcess

VOID __stdcall KeSetQuantumProcess(_EPROCESS *Process, INT8 QuantumReset){
  unsigned __int8 CurrentIrql; 
  unsigned int *p_ProcessLock; 
  _LIST_ENTRY *p_ThreadListHead; 
  _LIST_ENTRY *i; 

  if( Process->Pcb.QuantumReset != QuantumReset )
  {
    CurrentIrql = KeGetCurrentIrql();
    __writecr8(2ui64);
    p_ProcessLock = &Process->Pcb.ProcessLock;
    ExAcquireSpinLockExclusiveAtDpcLevel((INT64 *)&Process->Pcb.ProcessLock);
    Process->Pcb.QuantumReset = QuantumReset;
    p_ThreadListHead = &Process->Pcb.ThreadListHead;
    for( i = p_ThreadListHead->Flink; i != p_ThreadListHead; i = i->Flink )
      BYTE3(i[-7].Flink) = QuantumReset;
    ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)p_ProcessLock);
    __writecr8(CurrentIrql);
  }
}

Referenced by:

KeSetPriorityAndQuantumProcess
PsChangeQuantumTable
PspApplyJobLimitsToProcess