GetProcessAffinityMask 함수(winbase.h)
지정된 프로세스의 프로세스 선호도 마스크와 시스템의 시스템 선호도 마스크를 검색합니다.
구문
BOOL GetProcessAffinityMask(
[in] HANDLE hProcess,
[out] PDWORD_PTR lpProcessAffinityMask,
[out] PDWORD_PTR lpSystemAffinityMask
);
매개 변수
[in] hProcess
선호도 마스크가 필요한 프로세스에 대한 핸들입니다.
이 핸들에는 PROCESS_QUERY_INFORMATION 또는 PROCESS_QUERY_LIMITED_INFORMATION 액세스 권한이 있어야 합니다. 자세한 내용은 프로세스 보안 및 액세스 권한을 참조하세요.
Windows Server 2003 및 Windows XP: 핸들에는 PROCESS_QUERY_INFORMATION 액세스 권한이 있어야 합니다.
[out] lpProcessAffinityMask
지정된 프로세스에 대한 선호도 마스크를 수신하는 변수에 대한 포인터입니다.
[out] lpSystemAffinityMask
시스템의 선호도 마스크를 수신하는 변수에 대한 포인터입니다.
반환 값
함수가 성공하면 반환 값은 0이 아니고 함수는 lpProcessAffinityMask 및 lpSystemAffinityMask 가 가리키는 변수를 적절한 선호도 마스크로 설정합니다.
64개 이상의 프로세서가 있는 시스템에서 호출 프로세스의 스레드가 단일 프로세서 그룹에 있는 경우 함수는 lpProcessAffinityMask 및 lpSystemAffinityMask가 가리키는 변수를 해당 그룹에 대한 활성 논리 프로세서의 프로세스 선호도 마스크 및 프로세서 마스크로 설정합니다. 호출 프로세스에 여러 그룹에 스레드가 포함된 경우 함수는 두 선호도 마스크에 대해 0을 반환합니다.
함수가 실패하면 반환 값은 0이고 lpProcessAffinityMask 및 lpSystemAffinityMask가 가리키는 변수의 값은 정의되지 않습니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
프로세스 선호도 마스크는 각 비트가 프로세스를 실행할 수 있는 프로세서를 나타내는 비트 벡터입니다. 시스템 선호도 마스크는 각 비트가 시스템에 구성된 프로세서를 나타내는 비트 벡터입니다.
프로세스 선호도 마스크는 시스템 선호도 마스크의 하위 집합입니다. 프로세스는 시스템에 구성된 프로세서에서만 실행할 수 있습니다. 따라서 시스템 선호도 마스크가 해당 프로세서에 대해 0비트 를 지정하는 경우 프로세스 선호도 마스크는 프로세서에 대해 1비트 를 지정할 수 없습니다.
Windows 11 및 Windows Server 2022부터 64개 이상의 프로세서, 프로세스 및 스레드 친화성이 있는 시스템에서는 기본적으로 모든 프로세서 그룹에 걸쳐 시스템의 모든 프로세서에 걸쳐 있습니다. GetProcessAffinityMask 함수는 lpProcessAffinityMask 및 lpSystemAffinityMask를 프로세스의 기본 그룹에 대한 프로세스 및 시스템 프로세서 마스크로 설정합니다. 프로세스가 프로세스의 기본 그룹 외부에 있는 하나 이상의 스레드에 대한 선호도를 명시적으로 설정한 경우 함수는 두 선호도 마스크에 대해 0을 반환합니다. 그러나 hHandle 이 현재 프로세스에 대한 핸들을 지정하는 경우 함수는 항상 호출 스레드의 기본 그룹(기본적으로 프로세스의 기본 그룹과 동일함)을 사용하여 lpProcessAffinityMask 및 lpSystemAffinityMask를 설정합니다.
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |