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 |