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


структура PERF_OBJECT_TYPE (winperf.h)

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

Синтаксис

typedef struct _PERF_OBJECT_TYPE {
  DWORD         TotalByteLength;
  DWORD         DefinitionLength;
  DWORD         HeaderLength;
  DWORD         ObjectNameTitleIndex;
#if ...
  DWORD         ObjectNameTitle;
#else
  LPWSTR        ObjectNameTitle;
#endif
  DWORD         ObjectHelpTitleIndex;
#if ...
  DWORD         ObjectHelpTitle;
#else
  LPWSTR        ObjectHelpTitle;
#endif
  DWORD         DetailLevel;
  DWORD         NumCounters;
  LONG          DefaultCounter;
  LONG          NumInstances;
  DWORD         CodePage;
  LARGE_INTEGER PerfTime;
  LARGE_INTEGER PerfFreq;
} PERF_OBJECT_TYPE, *PPERF_OBJECT_TYPE;

Члены

TotalByteLength

Размер данных, относящихся к объекту, в байтах. Этот элемент представляет собой смещение от начала этой структуры к следующей PERF_OBJECT_TYPE структуре, если она существует.

DefinitionLength

Размер этой структуры плюс размер всех
PERF_COUNTER_DEFINITION структур.

Если объект является объектом с несколькими экземплярами (элемент NumInstances не равен нулю), этот элемент является смещением от начала этой структуры к первой PERF_INSTANCE_DEFINITION структуре. В противном случае это значение является смещением PERF_COUNTER_BLOCK.

HeaderLength

Размер этой структуры в байтах. Этот элемент представляет собой смещение от начала этой структуры до первой структуры PERF_COUNTER_DEFINITION .

ObjectNameTitleIndex

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

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

ObjectNameTitle

Зарезервировано.

ObjectHelpTitleIndex

Индекс на текст справки объекта в базе данных заголовка. Дополнительные сведения об использовании индекса для получения текста справки объекта см. в разделах Получение имен счетчиков и Текста справки.

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

ObjectHelpTitle

Зарезервировано.

DetailLevel

Уровень детализации. Потребители используют это значение для управления сложностью отображения. Это значение является минимальным уровнем детализации всех счетчиков для заданного объекта. Этот элемент может быть одним из следующих значений.

Уровень детализации Значение
PERF_DETAIL_NOVICE
Данные счетчика предоставляются для всех пользователей.
PERF_DETAIL_ADVANCED
Данные счетчика предоставляются для опытных пользователей.
PERF_DETAIL_EXPERT
Данные счетчика предоставляются пользователям-экспертам.
PERF_DETAIL_WIZARD
Данные счетчиков предоставляются для системных конструкторов.

NumCounters

Количество PERF_COUNTER_DEFINITION блоков, возвращаемых объектом .

DefaultCounter

Индекс по имени счетчика в базе данных заголовка счетчика по умолчанию, сведения о котором должны отображаться при выборе этого объекта в средстве производительности. Этот элемент может иметь значение –1, чтобы указать, что по умолчанию нет.

NumInstances

Число экземпляров объектов, для которых предоставляются счетчики. Если объект может иметь ноль или более экземпляров, но в настоящее время не имеет ни одного экземпляра, это значение должно быть равно нулю. Если объект не может иметь несколько экземпляров, это значение должно быть PERF_NO_INSTANCES.

CodePage

Этот член равен нулю, если строки экземпляра являются строками Юникода. В противном случае этот элемент является идентификатором кодовой страницы имен экземпляров. Значение кодовой страницы можно использовать при вызове MultiByteToWideChar для преобразования строки в Юникод.

PerfTime

Созданная поставщиком метка времени, используемая потребителями при вычислении значений счетчиков. Например, это может быть текущее значение счетчика производительности с высоким разрешением в подсчетах.

Поставщики должны предоставить это значение, если типы счетчиков их счетчиков содержат флаг PERF_OBJECT_TIMER . В противном случае потребители используют значение PerfTimeиз PERF_DATA_BLOCK.

PerfFreq

Значение частоты, созданное поставщиком, которое потребители используют при вычислении значений счетчиков. Например, это может быть текущая частота счетчика производительности с высоким разрешением в секунду.

Поставщики должны предоставить это значение, если типы счетчиков их счетчиков содержат флаг PERF_OBJECT_TIMER . В противном случае потребители используют значение PerfFreq из PERF_DATA_BLOCK.

Комментарии

Поставщики используют эту структуру для предоставления данных о производительности для объектов, которые они поддерживают. Потребители используют эту структуру для использования данных о производительности для объектов, которые они запрашивали.

За этой структурой следует список PERF_COUNTER_DEFINITION структур, по одной для каждого счетчика, определенного для объекта производительности. Дополнительные сведения о макете блока данных о производительности см. в разделе Формат данных производительности.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть winperf.h (включая Windows.h)

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

PERF_COUNTER_DEFINITION

PERF_DATA_BLOCK

Формат данных производительности