SetThreadAffinityMask

The SetThreadAffinityMask function sets a processor affinity mask for a specified thread.

A thread affinity mask is a bit vector in which each bit represents the processors that a thread is allowed to run on.

A thread affinity mask must be a proper subset of the process affinity mask for the containing process of a thread. A thread is only allowed to run on the processors its process is allowed to run on.

DWORD SetThreadAffinityMask (
  HANDLE hThread,             // handle to the thread of interest
  DWORD dwThreadAffinityMask  // a thread affinity mask
);
 

Parameters

hThread
A handle to the thread whose affinity mask the function sets.

Windows NT: This handle must have the THREAD_SET_INFORMATION access right associated with it.

dwThreadAffinityMask
Windows NT: Specifies an affinity mask for the thread.

Windows 95 and Windows 98: This value must be 1.

Return Values

If the function succeeds, the return value is nonzero.

Windows NT: The return value is the thread's previous affinity mask.

Windows 95 and Windows 98: The return value is 1. To succeed, hThread must be valid and dwThreadAffinityMask must be 1.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

QuickInfo

  Windows NT: Requires version 3.5 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in winbase.h.
  Import Library: Use kernel32.lib.

See Also

Processes and Threads Overview, Process and Thread Functions, GetProcessAffinityMask, SetThreadIdealProcessor