GetLogicalProcessorInformationEx 함수(sysinfoapi.h)

논리 프로세서 및 관련 하드웨어의 관계에 대한 정보를 검색합니다.

구문

BOOL GetLogicalProcessorInformationEx(
  [in]            LOGICAL_PROCESSOR_RELATIONSHIP           RelationshipType,
  [out, optional] PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Buffer,
  [in, out]       PDWORD                                   ReturnedLength
);

매개 변수

[in] RelationshipType

검색할 관계의 형식입니다. 이 매개 변수는 다음 LOGICAL_PROCESSOR_RELATIONSHIP 값 중 하나일 수 있습니다.

의미
RelationProcessorCore
0
단일 프로세서 코어를 공유하는 논리 프로세서에 대한 정보를 검색합니다.
RelationNumaNode
1
동일한 NUMA 노드의 일부인 논리 프로세서에 대한 정보를 검색합니다.
RelationCache
2
캐시를 공유하는 논리 프로세서에 대한 정보를 검색합니다.
RelationProcessorPackage
3
물리적 패키지를 공유하는 논리 프로세서에 대한 정보를 검색합니다.
RelationGroup
4
프로세서 그룹을 공유하는 논리 프로세서에 대한 정보를 검색합니다.
RelationProcessorDie
5
프로세서 다이를 공유하는 논리 프로세서에 대한 정보를 검색합니다.
RelationNumaNodeEx
6
동일한 NUMA 노드의 일부인 논리 프로세서에 대한 정보를 검색합니다(전체 선호도 포함).
RelationProcessorModule
7
프로세서 모듈을 공유하는 논리 프로세서에 대한 정보를 검색합니다.
RelationAll
0xffff
모든 관계 유형(캐시, NUMA 노드, 프로세서 코어, 물리적 패키지, 프로세서 그룹, 프로세서 다이 및 프로세서 모듈)에 대한 논리 프로세서에 대한 정보를 검색합니다.

[out, optional] Buffer

변 크기 SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX 구조의 시퀀스를 수신하는 버퍼에 대한 포인터입니다. 함수가 실패하면 이 버퍼의 내용이 정의되지 않습니다.

[in, out] ReturnedLength

입력에서 는 버퍼가 가리키는 버퍼의 길이(바이트)를 지정합니다. 버퍼가 모든 데이터를 포함할 만큼 크면 이 함수가 성공하고 ReturnedLength 가 반환된 바이트 수로 설정됩니다. 버퍼가 모든 데이터를 포함할 만큼 크지 않으면 함수가 실패하고 GetLastError 는 ERROR_INSUFFICIENT_BUFFER 반환하며 ReturnedLength 는 모든 데이터를 포함하는 데 필요한 버퍼 길이로 설정됩니다. ERROR_INSUFFICIENT_BUFFER 이외의 오류로 인해 함수가 실패하면 ReturnedLength 값이 정의되지 않습니다.

반환 값

함수가 성공하면 반환 값이 TRUE이고 하나 이상의 SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX 구조체가 출력 버퍼에 기록됩니다.

함수가 실패하면 반환 값은 FALSE입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

WOW64에서 실행되는 32비트 프로세스가 64개 이상의 프로세서가 있는 시스템에서 이 함수를 호출하는 경우 함수에서 반환된 프로세서 선호도 마스크 중 일부는 올바르지 않을 수 있습니다. 이는 모든 64개 프로세서를 나타내는 64비트 KAFFINITY 구조체의 상위 DWORD가 호출자 버퍼의 32비트 KAFFINITY 구조체로 "접힌" 상태이기 때문입니다. 따라서 프로세서 32~63의 선호도 마스크는 프로세서 0~31에 대한 마스크의 중복으로 잘못 표시됩니다. 또한 프로세서 32~63의 선호도 마스크는 프로세서 0~31에 대한 마스크의 중복으로 잘못 표시됩니다. 또한 PROCESSOR_GROUP_INFO 구조에 보고된 모든 그룹별 ActiveProcessorCountMaximumProcessorCount 값의 합계는 일부 활성 논리 프로세서를 제외할 수 있습니다.

이 함수는 RelationProcessorCore의 관계 형식으로 호출되면 시스템의 모든 프로세서 그룹에 있는 모든 활성 프로세서 코어에 대한 PROCESSOR_RELATIONSHIP 구조를 반환합니다. 이는 선호되지 않는 32비트 스레드가 프로세서 32~63을 포함하여 지정된 그룹의 모든 논리 프로세서에서 실행될 수 있기 때문입니다. 32비트 호출자는 PROCESSOR_RELATIONSHIP 구조체의 총 수를 사용하여 시스템의 실제 활성 프로세서 코어 수를 확인할 수 있습니다. 그러나 32비트 스레드의 선호도는 프로세서 그룹의 논리 프로세서 32~63으로 명시적으로 설정할 수 없습니다.

이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT >= 0x0601 설정합니다. 자세한 내용은 Windows 헤더 사용을 참조하세요.

Windows Server 2022(21H2, 빌드 20348)부터의 동작

이 함수 및 기타 NUMA 함수의 동작은 64개 이상의 프로세서를 포함하는 노드가 있는 시스템을 더 잘 지원하도록 수정되었습니다. 이 API의 이전 동작을 사용하도록 설정하는 방법에 대한 정보를 포함하여 이 변경에 대한 자세한 내용은 NUMA 지원을 참조하세요.

RelationNumaNode에 대한 요청은 노드의 기본 그룹 내에 있는 노드의 선호도만 포함하는 NUMA_NODE_RELATIONSHIP 구조를 반환합니다. GroupCount 값은 1이고 구조체 크기는 고정됩니다.

RelationNumaNodeEx 또는 RelationAll에 대한 요청은 모든 그룹에 대해 노드에 대한 친화 배열을 포함하는 NUMA_NODE_RELATIONSHIP 구조를 반환합니다. GroupCount는 친화 횟수를 보고하고 구조체의 크기는 가변적입니다.

요구 사항

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

참고 항목

SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX