PERF_COUNTERSET_INFO 结构 (perflib.h)
定义有关提供程序使用的计数器集的信息。 CTRPP 工具会根据指定的架构自动生成此结构。
语法
typedef struct _PERF_COUNTERSET_INFO {
GUID CounterSetGuid;
GUID ProviderGuid;
ULONG NumCounters;
ULONG InstanceType;
} PERF_COUNTERSET_INFO, *PPERF_COUNTERSET_INFO;
成员
CounterSetGuid
唯一标识计数器集的 GUID。 counterSet 元素的 guid 属性包含 GUID。
ProviderGuid
唯一标识支持计数器集的提供程序的 GUID。 provider 元素的 providerGuid 属性包含 GUID。
NumCounters
计数器集中的计数器数。 请参阅“备注”。
InstanceType
指定计数器集是允许多实例(如进程和物理磁盘),还是允许单实例(如内存)。
下面是可能的实例类型。
值 |
含义 |
- PERF_COUNTERSET_SINGLE_INSTANCE
|
该计数器集中包含多个单实例计数器,例如,测量物理内存的计数器。
|
- PERF_COUNTERSET_MULTI_INSTANCES
|
该计数器集中包含多个多实例计数器,例如,测量进程的平均磁盘 I/O 的计数器。
|
- PERF_COUNTERSET_SINGLE_AGGREGATE
|
该计数器集中包含多个单实例计数器,这些计数器的聚合值是从一个或多个源获取的。 例如,这种类型的计数器集内的计数器可以从计算机上的每个硬盘(共三个)获取读取次数并对它们的值求和。
|
- PERF_COUNTERSET_MULTI_AGGREGATE
|
该计数器集中包含多个多实例计数器,这些计数器的聚合值是从该计数器的所有实例获取的。 例如,此类型的计数器集中的计数器可能会获取多线程应用程序中所有线程的总线程执行时间,并求和其值。
|
- PERF_COUNTERSET_SINGLE_AGGREGATE_HISTORY
|
此类型和 PERF_COUNTERSET_SINGLE_AGGREGATE 的区别在于,此计数器集类型存储使用者应用程序生存期内的所有计数器值, (计数器值缓存超过计数器) 的生存期。 例如,如果上述单个聚合示例中的某个硬盘不可用,则该磁盘读取的总字节数仍将可用,并用于计算聚合值。
|
- PERF_COUNTERSET_INSTANCE_AGGREGATE
|
此类型类似于 PERF_COUNTERSET_MULTI_AGGREGATE,不同之处在于,它不会将所有实例数据聚合到一个聚合 (_Total) 实例,而是聚合同名实例中的计数器数据。
例如,如果多个提供程序进程包含名为 IExplore 的实例,PERF_COUNTERSET_MULTIPLE 和 PERF_COUNTERSET_MULTI_AGGREGATE CounterSet 将显示多个 IExplore 实例 (IExplore、IExplore#1、IExplore#2 等) ;但是,PERF_COUNTERSET_INSTANCE_AGGREGATE实例类型将仅发布一个 IExplore 实例,其中包含所有名为 IExplore 的实例的聚合计数器数据。
Windows Vista: 此类型不可用。
|
此结构的内存块还包含一个或多个 PERF_COUNTER_INFO 结构。 NumCounter 成员确定内存中遵循此结构的PERF_COUNTER_INFO结构的数目。
要求
|
|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
标头 |
perflib.h |
请参阅
PERF_COUNTER_INFO
PerfSetCounterSetInfo