KiGetProcessCpuSetMaskPointer

UINT64 *__stdcall KiGetProcessCpuSetMaskPointer(_EPROCESS *Process, UINT64 AllowedSets, UINT64 *GroupCount){
  if( (Process->Flags3 & 0x80u) != 0 )
  {
    *(_DWORD *)GroupCount = (unsigned __int16)KiMaximumGroups;
    if( (_DWORD)AllowedSets )
      return Process->AllowedCpuSetsIndirect;
    else
      return Process->DefaultCpuSetsIndirect;
  }
  else
  {
    *(_DWORD *)GroupCount = 1;
    return(unsigned __int64 *)((char *)&Process->DefaultCpuSets
                              + (-(__int64)((_DWORD)AllowedSets != 0) & 0xFFFFFFFFFFFFFFF8ui64));
  }
}

Referenced by:

KeQueryCpuSetsProcess
KeSetCpuSetsProcess