The GetProcessAffinityMask function obtains a process affinity mask for the specified process and the system affinity mask for the system.
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 proper subset of a system affinity mask. A process is only allowed to run on the processors configured into a system.
BOOL GetProcessAffinityMask(
HANDLE hProcess, | // handle to the process of interest |
LPDWORD lpProcessAffinityMask, | // pointer to structure to receive process affinity mask |
LPDWORD lpSystemAffinityMask | // pointer to structure to receive system affinity mask |
); |
Parameters
hProcess
An open handle to the process whose affinity mask is desired.
Windows NT: This handle must have PROCESS_QUERY_INFORMATION access. For more information, see Process Objects.
lpProcessAffinityMask
Pointer to a DWORD that the function sets to the process affinity mask for the specified process.
lpSystemAffinityMask
Pointer to a DWORD that the function sets to the system affinity mask for the system.
Return Values
If the function succeeds, the return value is nonzero.
Windows NT: Upon success, the function sets the DWORD variables pointed to by lpProcessAffinityMask and lpSystemAffinityMask to the appropriate affinity masks.
Windows 95: Upon success, the function sets the DWORD variables pointed to by lpProcessAffinityMask and lpSystemAffinityMask to the value one.
If the function fails, the return value is zero, and the values of the DWORD variables pointed to by lpProcessAffinityMask and lpSystemAffinityMask are undefined.
See Also