KiSetIdealNodeProcessByGroup

VOID __stdcall KiSetIdealNodeProcessByGroup(_EPROCESS *Process, _KNODE *IdealNode, UINT64 Group){
  __int64 v3; 
  _KNODE *v4; 
  unsigned __int64 v6; 
  unsigned __int16 v7; 
  _GROUP_AFFINITY GroupAffinity; 

  v3 = (unsigned __int16)Group;
  v4 = IdealNode;
  GroupAffinity = 0i64;
  GroupAffinity.Group = Group;
  v6 = Process->Pcb.Affinity.Bitmap[(unsigned __int16)Group];
  GroupAffinity.Mask = v6;
  if( !IdealNode )
    v4 = KeSelectNodeForAffinity(&GroupAffinity);
  Process->Pcb.IdealNode[v3] = v4->Affinity.Reserved[0];
  GroupAffinity.Mask = v6 & v4->Affinity.Mask;
  v7 = KiSelectIdealProcessorForProcess((INT64)v4, (INT64 *)&GroupAffinity);
  Process->Pcb.IdealProcessor[v3] = v7;
  Process->Pcb.ThreadSeed[v3] = v7;
}

Referenced by:

KeInitializeProcess
KeSetAffinityProcess
KiExtendProcessAffinity