KeQueryHardwareCounterConfiguration 함수(ntddk.h)

KeQueryHardwareCounterConfiguration 루틴은 운영 체제에서 스레드 프로파일링에 사용할 하드웨어 카운터 목록을 쿼리합니다.

구문

NTSTATUS KeQueryHardwareCounterConfiguration(
  [out] PHARDWARE_COUNTER CounterArray,
  [in]  ULONG             MaximumCount,
  [out] PULONG            Count
);

매개 변수

[out] CounterArray

루틴이 HARDWARE_COUNTER 형식의 요소 배열을 작성하는 호출자가 할당한 버퍼에 대한 포인터입니다. 각 배열 요소는 하드웨어 카운터에 대한 정보를 포함하는 구조체입니다. 배열에는 스레드 프로파일링에 할당된 각 하드웨어 카운터에 대해 하나의 요소가 포함됩니다. 루틴이 실패하면 이 버퍼에 아무 것도 기록하지 않습니다.

[in] MaximumCount

CounterArray 매개 변수가 가리키는 버퍼에 루틴이 쓸 수 있는 최대 요소 수를 지정합니다. 호출자가 할당한 버퍼의 크기는 MaximumCount * sizeof(HARDWARE_COUNTER) 바이트 이상이어야 합니다.

[out] Count

루틴이 CounterArray 매개 변수가 가리키는 버퍼에 쓴 배열 요소 수를 쓰는 위치에 대한 포인터입니다. MaximumCount에 지정된 버퍼 길이가 전체 배열을 포함할 만큼 크지 않은 경우 루틴은 필요한 길이를 *Count에 쓰고 STATUS_BUFFER_TOO_SMALL 반환합니다.

반환 값

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

반환 코드 설명
STATUS_BUFFER_TOO_SMALL MaximumCount 매개 변수는 카운터 구성 정보를 포함할 만큼 크지 않은 버퍼 길이를 지정합니다.
STATUS_NOT_IMPLEMENTED 이 루틴은 호출자가 실행 중인 프로세서 아키텍처에 대해 구현되지 않습니다.

설명

Windows 7에서 이 루틴은 x86 기반, x64 기반 및 Itanium 기반 아키텍처에 대해서만 구현됩니다. 호출자가 지원되지 않는 프로세서 아키텍처에서 실행 중인 경우 루틴은 STATUS_NOT_IMPLEMENTED 반환합니다.

스레드 프로파일링에 사용할 하드웨어 카운터 구성을 설정하려면 KeSetHardwareCounterConfiguration 루틴을 호출합니다.

요구 사항

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

추가 정보

HARDWARE_COUNTER

KeSetHardwareCounterConfiguration