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


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

Возвращает имена и идентификаторы активных экземпляров счетчика, заданных в

указанная система.

Синтаксис

ULONG PerfEnumerateCounterSetInstances(
  [in, optional]  LPCWSTR               szMachine,
  [in]            LPCGUID               pCounterSetId,
  [out, optional] PPERF_INSTANCE_HEADER pInstances,
                  DWORD                 cbInstances,
  [out]           LPDWORD               pcbInstancesActual
);

Параметры

[in, optional] szMachine

Имя компьютера, для которого необходимо получить сведения об активных экземплярах набора счетчиков, заданных параметром pCounterSet . Если значение РАВНО NULL, функция получает сведения об активных экземплярах указанного набора счетчиков для локального компьютера.

[in] pCounterSetId

Идентификатор набора счетчиков, для которого требуется получить сведения об активных экземплярах.

[out, optional] pInstances

Указатель на буфер, достаточно большой для получения объема данных, заданного параметром cbInstances . Может быть

Значение NULL, если cbInstances равно 0.

cbInstances

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

[out] pcbInstancesActual

Размер буфера, фактически необходимый для получения сведений об активных экземплярах. Значение зависит от значения функции.

Возвращает.

Возвращаемое значение функции Значение pcbInstancesActual
ERROR_SUCCESS Число

байты сведений об активных экземплярах указанного набора счетчиков, которые функция хранит в указанном буфере pInstance.

ERROR_NOT_ENOUGH_MEMORY The

размер буфера, необходимого для хранения сведений об активных экземплярах счетчика, установленных на указанном компьютере, в байтах. Увеличение буфера до требуемого

size и снова вызовите функцию.

Другое Значение не определено и не должно использоваться.

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

Код возврата Описание
ERROR_SUCCESS
Функция успешно сохранила все сведения об активных экземплярах набора счетчиков в указанном буфере pInstance. Значение, на которое указывает pcbInstancesActual , указывает объем информации, фактически хранящейся в буфере, в байтах.
ERROR_NOT_ENOUGH_MEMORY
Буфер, указанный pInstances , был недостаточно велик для хранения всех сведений об активных экземплярах набора счетчиков. Значение, на которое указывает pcbInstancesActual , указывает размер буфера, необходимого для хранения всей информации. Увеличение буфера до требуемого

size и снова вызовите функцию.

 

Для других типов сбоев возвращаемым значением является системный код ошибки.

Комментарии

Сведения об активных экземплярах указанного набора счетчиков записываются в буфер, который указывает pInstances в виде последовательности PERF_INSTANCE_HEADER блоков. Размер в байтах

последовательность блоков записывается в pcbInstancesActual. Каждый блок PERF_INSTANCE_HEADER состоит из

структуры PERF_INSTANCE_HEADER , за которой сразу же следует символ UTF-16LE, завершающийся нулевым значением.

имя экземпляра, за которым следует заполнение таким образом, чтобы размер

PERF_INSTANCE_HEADER блок кратен 8 байтам.

Требования

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

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

PERF_INSTANCE_HEADER

PerfEnumerateCounterSet