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

    下列情况之一存在:

    • RegHandleNULL
    • pInstInfoNULL

注解

基于 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

另请参阅

RegisterTraceGuids

TraceEventInstance