Поделиться через


Функция PerfAddCounters (perflib.h)

Добавляет спецификации счетчика производительности в указанный запрос.

Синтаксис

ULONG PerfAddCounters(
  [in]      HANDLE                   hQuery,
  [in, out] PPERF_COUNTER_IDENTIFIER pCounters,
            DWORD                    cbCounters
);

Параметры

[in] hQuery

Дескриптор запроса, к которому требуется добавить спецификации счетчика производительности.

[in, out] pCounters

Указатель на спецификации счетчика производительности, которые требуется добавить.

cbCounters

Размер буфера, указанного параметром pCounters , в байтах.

Возвращаемое значение

Если функция выполняется успешно, она возвращает ERROR_SUCCESS.

Если функция завершается сбоем, возвращаемое значение представляет собой системный код ошибки.

Комментарии

Параметр pCounters должен указывать на последовательность PERF_COUNTER_IDENTIFIER блоков. Каждый PERF_COUNTER_IDENTIFIER блок состоит из PERF_COUNTER_IDENTIFIER структуры, за которой при необходимости следует строка имени экземпляра UTF-16LE, завершающаяся null, и заполнение, которое делает размер блока кратным 8 байтам.

Для каждого блока PERF_COUNTER_IDENTIFIER :

  • Задайте для элемента CounterSetGuid структуры PERF_COUNTER_IDENTIFIER идентификатор набора счетчиков для запроса.
  • Задайте для элемента Status структуры PERF_COUNTER_IDENTIFIER значение 0.
  • Задайте размер элемента структуры PERF_COUNTER_IDENTIFIER размер блока PERF_COUNTER_IDENTIFIER в байтах, включая структуру PERF_COUNTER_IDENTIFIER, имя экземпляра и заполнение. Значение Size должно быть кратным 8.
  • Задайте для элемента CounterId структуры PERF_COUNTER_IDENTIFIER идентификатор счетчика, который должен быть возвращен запросом. Чтобы вернуть все счетчики, задайте для CounterIdзначение PERF_WILDCARD_COUNTER.
  • Задайте для элемента InstanceId структуры PERF_COUNTER_IDENTIFIER идентификатор экземпляра, который должен быть возвращен запросом. Если фильтрация по идентификатору экземпляра не требуется, задайте для параметра InstanceIdзначение PERF_WILDCARD_COUNTER.
  • Задайте для элемента Index структуры PERF_COUNTER_IDENTIFIER значение 0.
  • Задайте для зарезервированного элемента структуры PERF_COUNTER_IDENTIFIER значение 0.
  • Включите имя экземпляра сразу после структуры PERF_COUNTER_IDENTIFIER .
    • Если набор счетчиков является одним экземпляром, не устанавливайте имя экземпляра. В этом случае значение элемента Size структуры PERF_COUNTER_IDENTIFIER должно быть размером PERF_COUNTER_IDENTIFIER структуры.
    • Если набор счетчиков является несколькими экземплярами, необходимо задать имя экземпляра. Если вы не хотите фильтровать спецификации счетчика производительности по имени экземпляра, используйте PERF_WILDCARD_INSTANCE в качестве имени экземпляра.
PerfAddCounters пытается добавить одну спецификацию счетчика в запрос для каждого блока PERF_COUNTER_IDENTIFIER и обновляет элемент Status структуры PERF_COUNTER_IDENTIFIER в каждом блоке с результатом попытки.

Требования

   
Минимальная версия клиента Windows 10 версии 1607 [только классические приложения]
Минимальная версия сервера Windows Server 2016 [только классические приложения]
Целевая платформа Windows
Header perflib.h
Библиотека AdvAPI32.lib
DLL AdvAPI32.dll

См. также раздел

PERF_COUNTER_IDENTIFIER

PerfDeleteCounters