Формат данных производительности
Формат данных, полученных функцией 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. На следующей схеме показана структура объекта производительности, поддерживающего два экземпляра.
Пример использования смещения см. в отображения объектов, экземпляров и счетчиков.