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


Поддержка класса 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 см. в разделе Designing Managed Object Format (MOF) Classes.

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

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

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

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

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

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

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

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

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

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

    • Отображаемое имя
    • CounterType
    • DefaultScale
    • Описание
    • PerfDefault
    • PerfDetail

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

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

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

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

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

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