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

Обновления значение счетчика, значение которого является указателем на фактические данные. Поставщики используют эту функцию.

Синтаксис

ULONG PerfSetCounterRefValue(
  [in] HANDLE                    Provider,
  [in] PPERF_COUNTERSET_INSTANCE Instance,
  [in] ULONG                     CounterId,
  [in] PVOID                     Address
);

Параметры

[in] Provider

Дескриптор поставщика. Используйте переменную дескриптора, созданную инструментом CTRPP . Имя переменной см. в атрибуте символа элемента provider .

Windows Vista: Функция PerfStartProvider возвращает дескриптор.

[in] Instance

Структура PERF_COUNTERSET_INSTANCE , содержащая экземпляр набора счетчиков. Функция PerfCreateInstance возвращает этот указатель.

[in] CounterId

Идентификатор, однозначно определяющий счетчик для обновления в блоке экземпляра. Идентификатор определяется в атрибуте id элемента counter и должен соответствовать элементу CounterId одной из PERF_COUNTER_INFO структур в блоке экземпляра. Используйте константу идентификатора счетчика, созданную средством CTRPP . Имя константы см. в атрибуте символа элемента счетчика .

Windows Vista: Константы идентификатора счетчика недоступны.

[in] Address

Указатель на фактические данные счетчика.

При значении NULL потребитель получает ERROR_NO_DATA.

Чтобы указать, что доступ к данным счетчика осуществляется по ссылке, объявление счетчика в манифесте должно содержать элемент counterAttribute , атрибут имени которого имеет значение "reference".

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

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

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

Комментарии

Это удобная функция для указания ссылки на необработанные данные счетчика. Чтобы самостоятельно обновить ссылку на необработанные данные счетчика, используйте элемент Offset структуры PERF_COUNTER_INFO для доступа к значению счетчика для определенного счетчика. Элемент Attrib должен содержать флаг PERF_ATTRIB_BY_REFERENCE. Блок структуры PERF_COUNTERSET_INSTANCE содержит одну или несколько информационных структур счетчиков.

В зависимости от типа счетчика указатель должен ссылаться на 4-байтовое или 8-байтовое целое число без знака. При сборе данных счетчика PERFLIB разыменовывает указатель и возвращает фактические данные.

Требования

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

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

PerfSetULongCounterValue

PerfSetULongLongCounterValue