다음을 통해 공유


KeGetProcessorNumberFromIndex 함수(wdm.h)

KeGetProcessorNumberFromIndex 루틴은 시스템 전체 프로세서 인덱스를 그룹 번호 및 그룹 상대 프로세서 번호로 변환합니다.

구문

NTSTATUS KeGetProcessorNumberFromIndex(
  [in]  ULONG             ProcIndex,
  [out] PPROCESSOR_NUMBER ProcNumber
);

매개 변수

[in] ProcIndex

시스템 전체 프로세서 인덱스입니다. 다중 프로세서 시스템에 총 n 개의 논리 프로세서가 포함된 경우 유효한 프로세서 인덱스는 0에서 n-1까지입니다.

[out] ProcNumber

루틴이 ProcIndex로 식별되는 프로세서의 그룹 번호 및 그룹 상대 프로세서 번호를 쓰는 호출자가 할당한 PROCESSOR_NUMBER 구조체에 대한 포인터입니다.

반환 값

KeGetProcessorNumberFromIndex 는 호출이 성공하면 STATUS_SUCCESS 반환합니다. 가능한 오류 반환 값은 다음과 같습니다.

반환 코드 설명
STATUS_INVALID_PARAMETER ProcIndex 매개 변수 값이 유효한 프로세서 인덱스가 아닙니다.

설명

이 루틴은 전체 다중 프로세서 시스템에서 프로세서를 식별하는 프로세서 인덱스를 입력으로 허용합니다. 출력 값은 그룹 번호 및 그룹 내의 프로세서 번호로 프로세서를 식별하는 PROCESSOR_NUMBER 구조입니다.

예를 들어 다중 프로세서 시스템에 두 그룹이 있고 각 그룹에 64개의 논리 프로세서가 포함된 경우 각 그룹의 프로세서 번호는 0에서 63까지이지만 시스템 전체 프로세서 인덱스는 0에서 127까지입니다.

시스템의 총 활성 논리 프로세서 수를 가져오려면 KeQueryActiveProcessorCountEx 루틴을 호출합니다.

KeGetProcessorIndexFromNumber 루틴은 그룹 번호와 그룹 상대 프로세서 번호를 시스템 전체 프로세서 인덱스로 변환합니다.

예제

다음 코드 예제에서는 KeQueryActiveProcessorCountExKeGetProcessorNumberFromIndex 루틴을 사용하여 시스템의 모든 활성 논리 프로세서를 열거합니다.

ULONG Count;
ULONG ProcIndex;
PROCESSOR_NUMBER ProcNumber;

Count = KeQueryActiveProcessorCountEx(ALL_PROCESSOR_GROUPS);
for (ProcIndex = 0; ProcIndex < Count; ProcIndex += 1)
{
    KeGetProcessorNumberFromIndex(ProcIndex, &ProcNumber);

    // Do something with the contents of ProcNumber.
    ...
}

ALL_PROCESSOR_GROUPS 상수 값은 Winnt.h 및 Ntdef.h에 정의되어 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 및 이후 버전의 Windows에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Ntddk.h, Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준

추가 정보

KeGetProcessorIndexFromNumber

KeQueryActiveProcessorCountEx

PROCESSOR_NUMBER