GetThreadGroupAffinity function (processtopologyapi.h)

Retrieves the processor group affinity of the specified thread.


BOOL GetThreadGroupAffinity(
  [in]  HANDLE          hThread,
  [out] PGROUP_AFFINITY GroupAffinity


[in] hThread

A handle to the thread for which the processor group affinity is desired.

The handle must have the THREAD_QUERY_INFORMATION or THREAD_QUERY_LIMITED_INFORMATION access right. For more information, see Thread Security and Access Rights.

[out] GroupAffinity

A pointer to a GROUP_AFFINITY structure to receive the group affinity of the thread.

Return value

If the function succeeds, the return value is nonzero.

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


Starting with Windows 11 and Windows Server 2022, on a system with more than 64 processors, process and thread affinities span all processors in the system, across all processor groups, by default. The GetThreadGroupAffinity function retrieves the group affinity over the thread's primary group.

To compile an application that uses this function, set _WIN32_WINNT >= 0x0601. For more information, see Using the Windows Headers.


Minimum supported client Windows 7 [desktop apps only]
Minimum supported server Windows Server 2008 R2 [desktop apps only]
Target Platform Windows
Header processtopologyapi.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

See also


Processor Groups