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 |