支持 Win32_PerfRawData 类

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

注意

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

 

以下过程介绍如何使用高性能提供程序支持 Win32_PerfRawData 类。

支持 Win32_PerfRawData 类

  1. 在 Root\CIMv2 命名空间中创建类。

    此类必须派生自 Win32_PerfRawData,并将 Hiperf 限定符设置为 TRUE。 还可以将 WDM(驱动程序)性能数据类添加到 root\wmi 命名空间。 若要详细了解如何为 WMI 创建自己的类,请参阅设计托管对象格式 (MOF) 类

  2. 在 Provider 限定符中将提供程序指定为“NT5_GenericPerfProvider_V1”。

  3. 指定以下类级限定符:

    • HiPerf
    • 区域设置
    • PerfDetail
    • 提供程序

    有关详细信息,请参阅性能计数器类的类限定符。 请勿定义 GenericPerfCtr 限定符,因为该限定符是为将性能库数据传输到 WMI 类的 ADAP 进程保留的。

  4. 填充用于计算计数器类型公式的相应时间戳和频率属性。

    这些属性继承自 Win32_PerfRawData;如果要编写高性能提供程序,必须填写这些属性才能在系统监视器中显示类。

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

    不得在类上使用除 Name 以外的任何键属性。

  6. 创建数据类型为 DWORD (uint32) 或 QWORD (uint64) 的属性。 这些属性在传输到性能库时成为性能计数器。

  7. 为类中的所有属性指定以下属性级别的限定符:

    • DisplayName
    • CounterType
    • DefaultScale
    • 描述
    • PerfDefault
    • PerfDetail

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

    WMI 使用 DisplayName、Locale 和 Description 限定符进行本地化。 必须将修改后的限定符添加到 MS_409(英文)命名空间,这样系统监视器才能够正确显示类数据。 这意味着可通过添加带说明性文本的 Description 限定符来修改属性定义,并填写 DisplayName 值。 还必须将修改后的限定符添加到类支持的任何其他区域设置命名空间。 如果用户从未提供已修改限定符的区域设置请求数据,则 WMI 默认为 MS_409 命名空间中指定的定义。

  8. 为具有需要基值的计数器类型的任何属性创建基属性。

    此属性紧跟在属性后面,命名为 propertyname**_Base**。 例如,Win32_PerfRawData_PerfDisk_LogicalDisk 类中的平均属性 AvgDiskBytesPerRead 需要名为 AvgDiskBytesPerRead_Base 的基属性来计算样本数。 若要确定要使用的计数器类型是否需要基属性,请在 WMI 性能计数器类型中按名称或十进制值找到计数器类型。

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

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