支持 Win32_PerfFormattedData 类

当编写从 Win32_PerfFormattedData 派生类的高性能提供程序时,必须遵循特定的约定,这样 WMI 才能够计算属性值。

注意

建议不要在任何版本的 Windows 操作系统上编写 WMI 高性能提供程序来创建性能计数器。 有关详细信息,请参阅将实例提供程序转换为高性能提供程序性能库和 WMI

 

以下过程介绍如何支持 Win32_PerfFormattedData 类。

支持 Win32_PerfFormattedData 类

  1. 在与相应的原始类相同的命名空间中创建类。 此类必须派生自 Win32_PerfFormattedData,并将 HiPerf 限定符设置为 TRUE。 若要详细了解如何为 WMI 创建自己的类,请参阅设计托管对象格式 (MOF) 类

  2. Provider 限定符中指定“HiPerfCooker_v1”。

  3. 除了用于原始类的限定符外,还指定以下类级别限定符:

    注意

    不要为 GenericPerfCtr、PerfIndex 或 HelpIndex 设置任何值,因为这些值将由 ADAP 进程设置。 有关详细信息,请参阅性能计数器类的类限定符

     

  4. 在类中包含名为 Name 的键属性(单一实例类不需要此属性)。

    Name 属性的值必须与相应的原始类相同。 不得在类上使用除 Name 以外的任何键属性。

  5. 创建数据类型为 DWORD (uint32) 或 QWORD (uint64) 的属性。

    这些属性必须与原始类中的属性或要创建的类中的属性相对应。

  6. 除了用于原始类属性的 PerfIndex 和 PerfDetail 限定符外,还为类中的所有属性指定以下属性级别限定符:

    有关详细信息,请参阅性能计数器类的属性限定符。 此外,Winperf.h 头文件包含可以为 PerfDetail 和 CounterType 指定的值。

  7. 确保提供程序满足性能要求

性能要求

编写高性能提供程序时,其性能必须满足以下要求:

  • 打开高性能 DLL 文件所需的时间不超过 100 毫秒。 总的来说,打开每个高性能提供程序和性能库不能超过 5 秒。
  • 每次收集的数据刷新时间不超过 10 毫秒。 在整体刷新和收集操作时,所有高性能提供程序总共花费的时间不能超过 800 毫秒。
  • 所有高性能提供程序的总体 CPU 负载不能以交互方式超过 6-7% 的 CPU 开销,或超过 5% 的日志记录开销。

将实例提供程序转换为高性能提供程序