PerfAddCounters 函数 (perflib.h)

将性能计数器规范添加到指定的查询。

语法

ULONG PerfAddCounters(
  [in]      HANDLE                   hQuery,
  [in, out] PPERF_COUNTER_IDENTIFIER pCounters,
            DWORD                    cbCounters
);

parameters

[in] hQuery

要向其添加性能计数器规范的查询的句柄。

[in, out] pCounters

指向要添加的性能计数器规范的指针。

cbCounters

pCounters 参数指定的缓冲区的大小(以字节为单位)。

返回值

如果函数成功,则返回ERROR_SUCCESS。

如果函数失败,则返回值为 系统错误代码

注解

pCounters 参数应指向PERF_COUNTER_IDENTIFIER块的序列。 每个 PERF_COUNTER_IDENTIFIER 块由 一个PERF_COUNTER_IDENTIFIER 结构组成,后跟一个以 null 结尾的 UTF-16LE 实例名称字符串,后跟填充,使块的大小为 8 字节的倍数。

对于每个 PERF_COUNTER_IDENTIFIER 块:

  • PERF_COUNTER_IDENTIFIER 结构的 CounterSetGuid 成员设置为要查询的计数器集的标识符。
  • PERF_COUNTER_IDENTIFIER结构的 Status 成员设置为 0。
  • PERF_COUNTER_IDENTIFIER 结构的 Size 成员设置为PERF_COUNTER_IDENTIFIER块的大小(以字节为单位),包括PERF_COUNTER_IDENTIFIER结构、实例名称和填充。 Size 的值必须是 8 的倍数。
  • PERF_COUNTER_IDENTIFIER 结构的 CounterId 成员设置为查询应返回的计数器的标识符。 若要返回所有计数器,请将 CounterId 设置为 PERF_WILDCARD_COUNTER
  • PERF_COUNTER_IDENTIFIER 结构的 InstanceId 成员设置为查询应返回的实例的标识符。 如果不应基于实例标识符执行筛选,请将 InstanceId 设置为 PERF_WILDCARD_COUNTER
  • PERF_COUNTER_IDENTIFIER结构的 Index 成员设置为 0。
  • PERF_COUNTER_IDENTIFIER 结构的保留成员设置为 0。
  • 紧接在 PERF_COUNTER_IDENTIFIER 结构后面包括实例名称。
    • 如果计数器集是单实例的,请不要设置实例名称。 在这种情况下, PERF_COUNTER_IDENTIFIER 结构的 Size 成员的值必须是 PERF_COUNTER_IDENTIFIER 结构的大小。
    • 如果计数器集是多实例的,则必须设置实例名称。 如果不想基于实例名称筛选性能计数器规范,请使用 PERF_WILDCARD_INSTANCE 作为实例名称。
PerfAddCounters 尝试向每个PERF_COUNTER_IDENTIFIER块的查询添加一个计数器规范,并使用尝试的结果更新每个块中PERF_COUNTER_IDENTIFIER结构的 Status 成员。

要求

   
最低受支持的客户端 Windows 10版本 1607 [仅限桌面应用]
最低受支持的服务器 Windows Server 2016 [仅限桌面应用]
目标平台 Windows
标头 perflib.h
Library AdvAPI32.lib
DLL AdvAPI32.dll

请参阅

PERF_COUNTER_IDENTIFIER

PerfDeleteCounters