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


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

Формат данных, полученных функцией regQueryValueEx, начинается со структуры заголовка фиксированной длины PERF_DATA_BLOCK. Структура PERF_DATA_BLOCK описывает систему и данные о производительности. За PERF_DATA_BLOCK структурой следует переменное число элементов данных объекта переменной длины. Заголовок каждого элемента объекта содержит смещение следующего элемента объекта в списке. На следующей схеме показана базовая структура данных производительности.

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

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

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

структура объекта производительности, которая не поддерживает несколько экземпляров

Для типа объекта, поддерживающего несколько экземпляров, за списком PERF_COUNTER_DEFINITION структур следует список блоков сведений об экземпляре (по одному для каждого экземпляра). Каждый блок сведений об экземпляре содержит структуру PERF_INSTANCE_DEFINITION, имя экземпляра и структуру PERF_COUNTER_BLOCK. На следующей схеме показана структура объекта производительности, поддерживающего два экземпляра.

структура объекта производительности, поддерживающего два экземпляра

Пример использования смещения см. в отображения объектов, экземпляров и счетчиков.