KiExtendProcessAffinity
void __fastcall KiExtendProcessAffinity(__int64 a1, unsigned __int16 a2){
__int64 v2;
unsigned __int64 v4;
__int64 v5;
v2 = a2;
v4 = KeActiveProcessors.Bitmap[a2];
v5 = *(_QWORD *)(a1 + 8 * v2 + 88);
if( v5 )
{
*(_QWORD *)(a1 + 8 * v2 + 88) = v4 | v5;
}
else
{
if( *(_WORD *)(a1 + 80) <= (unsigned __int16)v2 )
*(_WORD *)(a1 + 80) = v2 + 1;
*(_QWORD *)(a1 + 8 * v2 + 88) |= v4;
KiSetIdealNodeProcessByGroup((_EPROCESS *)a1, 0i64, v2);
*(_DWORD *)(a1 + 636) |= 1 << v2;
}
}Referenced by:
KeSetAffinityThread
KeStartThread