createTraceInstanceId 函数 (evntrace.h)
基于 RegisterTraceGuids 的 (“Classic”) 事件提供程序可以使用 CreateTraceInstanceId 函数创建唯一的事务标识符并将其映射到注册句柄。 然后,提供程序在调用 TraceEventInstance 函数时使用事务标识符将事件标记为属于指定事务。 跟踪分析工具可以使用事务标识符对事件进行分组。
语法
ULONG WMIAPI CreateTraceInstanceId(
[in] HANDLE RegHandle,
[out] PEVENT_INSTANCE_INFO InstInfo
);
参数
[in] RegHandle
已注册事件跟踪类的句柄。 RegisterTraceGuids 函数在 TRACE_GUID_REGISTRATION 结构的 RegHandle 成员中返回此句柄。
[out] InstInfo
指向 EVENT_INSTANCE_INFO 结构的指针。 此结构的 InstanceId 成员包含事务标识符。
返回值
如果函数成功,则返回值ERROR_SUCCESS。
如果函数失败,则返回值为 系统错误代码之一。 下面是一些常见错误及其原因。
ERROR_INVALID_PARAMETER
下列情况之一存在:
- RegHandle 为 NULL。
- pInstInfo 为 NULL。
注解
基于 RegisterTraceGuids 的 (“Classic”) 提供程序调用此函数。 使用 EventActivityIdControl 实现与基于 EventRegister 的 (“Crimson”) 提供程序的类似功能。
ETW 在用户模式进程中创建标识符,因此它可能会为不同进程中的不同实例返回相同的编号。 当 InstanceId 达到 ULONG 的最大值时,值从头开始1
。 只有用户模式提供程序才能调用 CreateTraceInstanceId 函数, (驱动程序不能) 调用此函数。
示例
有关使用 CreateTraceInstanceId 的示例,请参阅 跟踪事件实例。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | evntrace.h |
Library | Advapi32.lib |
DLL | Advapi32.dll |