PerfEnumerateCounterSetInstances 函数 (perflib.h)

获取上设置的计数器的活动实例的名称和标识符

指定的系统。

语法

ULONG PerfEnumerateCounterSetInstances(
  [in, optional]  LPCWSTR               szMachine,
  [in]            LPCGUID               pCounterSetId,
  [out, optional] PPERF_INSTANCE_HEADER pInstances,
                  DWORD                 cbInstances,
  [out]           LPDWORD               pcbInstancesActual
);

参数

[in, optional] szMachine

要获取 pCounterSet 参数指定的计数器集的活动实例相关信息的计算机的名称。 如果为 NULL,则函数检索有关本地计算机指定计数器集的活动实例的信息。

[in] pCounterSetId

要获取活动实例相关信息的计数器集的计数器集标识符。

[out, optional] pInstances

指向缓冲区的指针,该缓冲区足够大,可以接收 cbInstances 参数指定的数据量。 可能

如果 cbInstances 为 0,则为 NULL。

cbInstances

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

[out] pcbInstancesActual

获取有关活动实例的信息所需的缓冲区大小。 含义取决于函数的值

返回。

函数返回值 2016 年 3 月 3 日代码的含义
ERROR_SUCCESS The number of

有关函数存储在 pInstances 指定的缓冲区中的指定计数器集的活动实例的信息字节。

ERROR_NOT_ENOUGH_MEMORY The

存储有关指定计算机上计数器集的活动实例的信息所需的缓冲区大小(以字节为单位)。 将缓冲区放大到所需的

调整大小,然后再次调用函数。

其他 该值未定义,不应使用。

返回值

返回代码 说明
ERROR_SUCCESS
函数已成功将有关计数器集的活动实例的所有信息存储在 pInstances 指定的缓冲区中。 以字节为单位指示实际存储在缓冲区中的信息量(以字节为单位)。 由主 角指向的值。
ERROR_NOT_ENOUGH_MEMORY
pInstances 指定的缓冲区不够大,无法存储有关计数器集的活动实例的所有信息。 由主角指向的值,该值指示存储所有信息所需的缓冲区大小。 将缓冲区放大到所需的

调整大小,然后再次调用函数。

 

对于其他类型的故障,返回值为 系统错误代码

注解

有关指定计数器集的活动实例的信息将写入 pInstances 指定为 PERF_INSTANCE_HEADER 块序列的缓冲区。 的大小(以字节为单位)

块的序列将写入 到文中。 每个 PERF_INSTANCE_HEADER 块由

PERF_INSTANCE_HEADER 结构的 ,紧跟以 null 结尾的 UTF-16LE

实例名称,后跟填充,使 的大小

PERF_INSTANCE_HEADER 块是 8 个字节的倍数。

要求

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

另请参阅

PERF_INSTANCE_HEADER

PerfEnumerateCounterSet