Retrieves the process affinity mask for the specified process and the system affinity mask for the system.
Syntax
BOOL WINAPI GetProcessAffinityMask(
__in HANDLE hProcess,
__out PDWORD_PTR lpProcessAffinityMask,
__out PDWORD_PTR lpSystemAffinityMask
);
Parameters
- hProcess [in]
-
A handle to the process whose affinity mask is desired.
This handle must have the PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION access right. For more information, see
Process Security and Access Rights.
Windows Server 2003 and Windows XP/2000: The handle must have the PROCESS_QUERY_INFORMATION access right.
- lpProcessAffinityMask [out]
-
A pointer to a variable that receives the affinity mask for the specified process.
- lpSystemAffinityMask [out]
-
A pointer to a variable that receives the affinity mask for the system.
Return Value
If the function succeeds, the return value is nonzero and the function sets the variables pointed to by lpProcessAffinityMask and lpSystemAffinityMask to the appropriate affinity masks.
If the function fails, the return value is zero, and the values of the variables pointed to by lpProcessAffinityMask and lpSystemAffinityMask are undefined. To get extended error information, call
GetLastError.
Remarks
A process affinity mask is a bit vector in which each bit represents the processors that a process is allowed to run on. A system affinity mask is a bit vector in which each bit represents the processors that are configured into a system.
A process affinity mask is a subset of the system affinity mask. A process is only allowed to run on the processors configured into a system.
Requirements
| Minimum supported client | Windows 2000 Professional |
| Minimum supported server | Windows 2000 Server |
| Header | Winbase.h (include Windows.h) |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |
See Also
Multiple Processors
Process and Thread Functions
Processes
SetProcessAffinityMask
SetThreadAffinityMask
Send comments about this topic to Microsoft
Build date: 11/6/2008