SetProcessDefaultCpuSetMasks function (processthreadsapi.h)

Sets the default CPU Sets assignment for threads in the specified process.

Syntax

BOOL SetProcessDefaultCpuSetMasks(
  HANDLE          Process,
  PGROUP_AFFINITY CpuSetMasks,
  USHORT          CpuSetMaskCount
);

Parameters

Process

Specifies the process for which to set the default CPU Sets. This handle must have the PROCESS_SET_LIMITED_INFORMATION access right. The value returned by GetCurrentProcess can also be specified here.

CpuSetMasks

Specifies an optional buffer of GROUP_AFFINITY structures representing the CPU Sets to set as the process default CPU set. If this is NULL, the SetProcessDefaultCpuSetMasks function clears out any assignment.

CpuSetMaskCount

Specifies the size of the CpuSetMasks array, in elements. If the buffer is NULL, this value must be zero.

Return value

This function cannot fail when passed valid parameters.

Remarks

Threads belonging to this process which don’t have CPU Sets explicitly set using SetThreadSelectedCpuSetMasks or SetThreadSelectedCpuSets, will inherit the sets specified by SetProcessDefaultCpuSetMasks automatically.

This function is analogous to SetProcessDefaultCpuSets, except that it uses group affinities as opposed to CPU Set IDs to represent a list of CPU sets. This means that the resulting process default CPU Set assignment is the set of all CPU sets with a home processor in the provided list of group affinities.

Requirements

Requirement Value
Minimum supported client Windows 11
Minimum supported server Windows Server 2022
Header processthreadsapi.h
DLL kernel32.dll