Функция KeQueryHardwareCounterConfiguration (ntddk.h)
KeQueryHardwareCounterConfiguration подпрограммы запрашивает операционную систему, чтобы список аппаратных счетчиков, используемых для профилирования потоков.
Синтаксис
NTSTATUS KeQueryHardwareCounterConfiguration(
[out] PHARDWARE_COUNTER CounterArray,
[in] ULONG MaximumCount,
[out] PULONG Count
);
Параметры
[out] CounterArray
Указатель на выделенный вызывающим буфером, в который подпрограмма записывает массив элементов типа HARDWARE_COUNTER. Каждый элемент массива — это структура, содержащая сведения о счетчике оборудования. Массив содержит один элемент для каждого счетчика оборудования, назначенного профилированию потоков. Если подпрограмма завершается ошибкой, она не записывает ничего в этот буфер.
[in] MaximumCount
Указывает максимальное количество элементов, которые подпрограмма может записывать в буфер, на который указывает параметр CounterArray. Размер выделенного буфера вызывающего объекта должен быть по крайней мере * максимальный размер(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 (include Ntddk.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |