다음을 통해 공유


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이 아니고 함수는 lpProcessAffinityMasklpSystemAffinityMask 가 가리키는 변수를 적절한 선호도 마스크로 설정합니다.

64개 이상의 프로세서가 있는 시스템에서 호출 프로세스의 스레드가 단일 프로세서 그룹에 있는 경우 함수는 lpProcessAffinityMask 및 lpSystemAffinityMask가 가리키는 변수를 해당 그룹에 대한 활성 논리 프로세서의 프로세스 선호도 마스크 및 프로세서 마스크로 설정합니다. 호출 프로세스에 여러 그룹에 스레드가 포함된 경우 함수는 두 선호도 마스크에 대해 0을 반환합니다.

함수가 실패하면 반환 값은 0이고 lpProcessAffinityMask 및 lpSystemAffinityMask 가리키는 변수의 값은 정의되지 않습니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

프로세스 선호도 마스크는 각 비트가 프로세스를 실행할 수 있는 프로세서를 나타내는 비트 벡터입니다. 시스템 선호도 마스크는 각 비트가 시스템에 구성된 프로세서를 나타내는 비트 벡터입니다.

프로세스 선호도 마스크는 시스템 선호도 마스크의 하위 집합입니다. 프로세스는 시스템에 구성된 프로세서에서만 실행할 수 있습니다. 따라서 시스템 선호도 마스크가 해당 프로세서에 대해 0비트 를 지정하는 경우 프로세스 선호도 마스크는 프로세서에 대해 1비트 를 지정할 수 없습니다.

Windows 11 및 Windows Server 2022부터 64개 이상의 프로세서, 프로세스 및 스레드 친화성이 있는 시스템에서는 기본적으로 모든 프로세서 그룹에 걸쳐 시스템의 모든 프로세서에 걸쳐 있습니다. GetProcessAffinityMask 함수는 lpProcessAffinityMasklpSystemAffinityMask를 프로세스의 기본 그룹에 대한 프로세스 및 시스템 프로세서 마스크로 설정합니다. 프로세스가 프로세스의 기본 그룹 외부에 있는 하나 이상의 스레드에 대한 선호도를 명시적으로 설정한 경우 함수는 두 선호도 마스크에 대해 0을 반환합니다. 그러나 hHandle 이 현재 프로세스에 대한 핸들을 지정하는 경우 함수는 항상 호출 스레드의 기본 그룹(기본적으로 프로세스의 기본 그룹과 동일함)을 사용하여 lpProcessAffinityMasklpSystemAffinityMask를 설정합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

다중 프로세서

프로세스 및 스레드 함수

프로세스

프로세서 그룹

SetProcessAffinityMask

SetThreadAffinityMask