KeSetTagCpuSets

NTSTATUS __stdcall KeSetTagCpuSets(UINT64 CpuSetCount, UINT64 *CpuSetMasks, UINT64 AllocationTag){
  UINT64 *v3; 
  unsigned int v4; 
  NTSTATUS result; 
  unsigned __int8 CurrentIrql; 
  unsigned int i; 
  unsigned __int64 j; 
  unsigned __int64 v10; 

  v3 = CpuSetMasks;
  v4 = CpuSetCount;
  LOBYTE(result) = KiValidateCpuSetMasks((_GUID *)CpuSetMasks, (_IOBJECT_TYPE_LIST *)(unsigned int)CpuSetCount);
  if( result >= 0 )
  {
    CurrentIrql = KeGetCurrentIrql();
    __writecr8(2ui64);
    KxAcquireSpinLock(&KiCpuSetLock);
    RtlWriteAcquireTickLock(&KiCpuSetSequence);
    for( i = 0; i < v4; ++v3 )
    {
      for( j = *v3; j; *(_QWORD *)(KiCpuSetData + 16i64 * ((i << 6) + (unsigned int)v10) + 8) = AllocationTag )
      {
        _BitScanForward64(&v10, j);
        j &= ~(1i64 << v10);
      }
      ++i;
    }
    ++KiCpuSetSequence;
    KxReleaseSpinLock(&KiCpuSetLock);
    __writecr8(CurrentIrql);
    return 0;
  }
  return result;
}

Referenced by:

NtSetSystemInformation