perfSetCounterRefValue 函数 (perflib.h)

汇报计数器的值,其值是指向实际数据的指针。 提供程序使用此函数。

语法

ULONG PerfSetCounterRefValue(
  [in] HANDLE                    Provider,
  [in] PPERF_COUNTERSET_INSTANCE Instance,
  [in] ULONG                     CounterId,
  [in] PVOID                     Address
);

参数

[in] Provider

提供程序的句柄。 使用 CTRPP 工具为你生成的句柄变量。 有关变量的名称,请参阅提供程序元素的 symbol 属性。

Windows Vista: PerfStartProvider 函数返回句柄。

[in] Instance

包含计数器集实例 的PERF_COUNTERSET_INSTANCE 结构。 PerfCreateInstance 函数返回此指针。

[in] CounterId

唯一标识要在实例块中更新的计数器的标识符。 标识符在 counter 元素的 id 属性中定义,必须与实例块中PERF_COUNTER_INFO结构之一的 CounterId 成员匹配。 使用 CTRPP 工具为你生成的计数器 ID 常量。 有关常量的名称,请参阅 counter 元素的 symbol 属性。

Windows Vista: 计数器 ID 常量不可用。

[in] Address

指向实际计数器数据的指针。

如果 为 NULL,则使用者接收ERROR_NO_DATA。

若要指示通过引用访问计数器数据,清单中的计数器声明必须包含 一个 counterAttribute 元素,其 name 属性设置为“reference”。

返回值

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

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

注解

这是一个方便的函数,用于指定对原始计数器数据的引用。 若要自行更新对原始计数器数据的引用,请使用 PERF_COUNTER_INFO 结构的 Offset 成员来访问特定计数器的计数器值。 Attrib 成员必须包含 PERF_ATTRIB_BY_REFERENCE 标志。 PERF_COUNTERSET_INSTANCE 结构块包含一个或多个计数器信息结构。

根据计数器类型,指针必须引用 4 字节或 8 字节无符号整数。 收集计数器数据时,PERFLIB 会取消引用指针并返回实际数据。

要求

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

另请参阅

PerfSetULongCounterValue

PerfSetULongLongCounterValue