KiExtendProcessAffinity
VOID __stdcall KiExtendProcessAffinity(_EPROCESS *Process, UINT64 GroupNumber){
__int64 v2;
unsigned __int64 v4;
unsigned __int64 v5;
v2 = (unsigned __int16)GroupNumber;
v4 = KeActiveProcessors.Bitmap[(unsigned __int16)GroupNumber];
v5 = Process->Pcb.Affinity.Bitmap[v2];
if( v5 )
{
Process->Pcb.Affinity.Bitmap[v2] = v4 | v5;
}
else
{
if( Process->Pcb.Affinity.Count <= (unsigned __int16)v2 )
Process->Pcb.Affinity.Count = v2 + 1;
Process->Pcb.Affinity.Bitmap[v2] |= v4;
KiSetIdealNodeProcessByGroup(&Process->Pcb, 0i64, (unsigned __int16)v2);
Process->Pcb.ActiveGroupsMask |= 1 << v2;
}
}Referenced by:
KeSetAffinityThread
KeStartThread