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


Поддержка класса Win32_PerfRawData

При написании поставщика высокой производительности, наследующего классы из Win32_PerfRawData, необходимо следовать определенным соглашениям, чтобы WMI могла предоставлять данные значениям свойств.

Заметка

Написание WMI-поставщика высокой производительности для создания счетчиков производительности не рекомендуется для любой версии операционной системы Windows. Дополнительные сведения см. в статье Создание поставщика экземпляров впоставщика High-Performance и библиотек производительности иWMI.

 

В следующей процедуре описывается, как поддерживать класс Win32_PerfRawData, используя вашего поставщика высокой производительности.

Для поддержки класса Win32_PerfRawData

  1. Создайте класс в пространстве имен Root\CIMv2.

    Класс должен быть производным от Win32_PerfRawData и иметь квалификатор Hiperf значение TRUE. Вы также можете добавить классы данных производительности WDM (драйвера) в пространство имён root\wmi. Дополнительные сведения о создании собственного класса для WMI см. в разделе Проектирование классов управляемого формата объектов (MOF).

  2. Укажите поставщик как "NT5_GenericPerfProvider_V1" в квалификаторе поставщика .

  3. Укажите следующие квалификаторы уровня класса:

    • HiPerf
    • локаль
    • PerfDetail
    • поставщик

    Дополнительные сведения см. в разделе квалификаторы классов для классов счетчиков производительности. Не определяйте квалификатор GenericPerfCtr, так как он зарезервирован для процесса ADAP, который передает данные библиотеки производительности в классы WMI.

  4. Заполните соответствующие свойства метки времени и частоты, используемые для вычисления формул типа счетчика.

    Эти свойства наследуются от Win32_PerfRawData и при написании поставщика высокой производительности необходимо заполнить их для отображения класса в Системном мониторе.

  5. Включите свойство ключа с именем Name в класс (это свойство не требуется для одноэлементных классов).

    В классе не следует использовать ни одно свойство ключа, отличное от Name.

  6. Создайте свойства, типизированные как DWORD (uint32) или QWORD (uint64). Эти свойства становятся счетчиками производительности при передаче в библиотеки производительности.

  7. Укажите следующие квалификаторы уровня свойств для всех свойств в классе:

    • ОтображаемоеИмя
    • ТипСчетчика
    • DefaultScale
    • описание
    • PerfDefault
    • Детали производительности

    Дополнительные сведения см. в разделе Квалификаторы свойств для классов счетчиков производительности. Кроме того, файл заголовка Winperf.h содержит значения, которые можно указать для PerfDetail и CounterType.

    WMI использует квалификаторы DisplayName, Локальи Описание для локализации. Необходимо добавить измененные квалификаторы в пространство имен MS_409 (английский), чтобы системный монитор правильно отображал данные класса. Это означает, что вы изменяете определение свойства, добавляя квалификатор описания с пояснительным текстом и заполняете значение DisplayName. Кроме того, необходимо добавить измененные квалификаторы в любое другое пространство имен для региона, которое поддерживает ваш класс. Если пользователь запрашивает данные из локали, для которой вы не предоставляете изменённые квалификаторы, WMI по умолчанию использует определения, указанные в пространстве имен MS_409.

  8. Создайте базовое свойство для любого свойства с типом счетчика, который ожидает базовое значение.

    Это свойство немедленно следует за свойством и называется имя свойства**_Base**. Например, среднее свойство AvgDiskBytesPerRead в классе Win32_PerfRawData_PerfDisk_LogicalDisk требует базового свойства с именем AvgDiskBytesPerRead_Base для подсчета количества выборок. Чтобы определить, требует ли тип счетчика, который вы хотите использовать, наличие базового свойства, найдите тип счетчика по имени или десятичному значению в типах счетчиков производительности WMI.

  9. Убедитесь, что ваш поставщик соответствует требованиям производительности .

Превращение поставщика экземпляров в High-Performance поставщика