etwActivityIdControl 函数 (wdm.h)

EtwActivityIdControl 函数创建、查询和设置当前活动标识符。

语法

NTSTATUS EtwActivityIdControl(
  [in]      ULONG  ControlCode,
  [in, out] LPGUID ActivityId
);

参数

[in] ControlCode

ControlCode 参数可以是以下定义的值之一。

含义
EVENT_ACTIVITY_CTRL_GET_ID ActivityId 参数中返回当前线程的活动标识符。
EVENT_ACTIVITY_CTRL_SET_ID 将当前线程的活动标识符设置为 ActivityId 中指定的值。 请注意,传递给此函数的 ActivityId 不一定是由 EVENT_ACTIVITY_CTRL_CREATE_IDEVENT_ACTIVITY_CTRL_CREATE_SET_ID 控制代码创建的。 可以使用适合 GUID 的任何值,包括满足某种类型活动标识符需求的任何可用本地值。
EVENT_ACTIVITY_CTRL_CREATE_ID 创建新的标识符,并将 ActivityId 参数设置为新标识符的值。
EVENT_ACTIVITY_CTRL_GET_SET_ID 将当前线程的活动标识符设置为 ActivityId 中指定的值,然后在函数调用之前返回具有线程活动标识符的值的 ActivityId
EVENT_ACTIVITY_CTRL_CREATE_SET_ID 复制当前线程的活动标识符。 创建新的标识符,并将当前线程的活动标识符设置为新值。 返回 ActivityId ,其中包含函数调用前线程的活动标识符的值。

[in, out] ActivityId

指示与事件关联的活动的标识符。 ActivityId 参数提供了一种对相关事件进行分组的方法,可用于端到端跟踪。

返回值

EtwActivityIdControl 返回STATUS_SUCCESS或相应的 NTSTATUS 值。

注解

活动标识符提供了一种链接常见计算线程中单独事件的方法。 活动是由应用程序和或驱动程序执行的工作项。 活动的概念是端到端跟踪的核心组件。

EtwActivityIdControl 的调用方必须在 IRQL < DISPATCH_LEVEL运行,除非 ControlCode 是EVENT_ACTIVITY_CTRL_CREATE_ID在这种情况下,可以在任何 IRQL 中调用函数。

使用 EtwActivityIdControlKernel 函数查询或设置活动标识符内核线程。

要求

要求
目标平台 通用
标头 wdm.h (包括 Wdm.h、Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe;Ntdll.dll
IRQL 请参阅注释部分

另请参阅

EtwActivityIdControlKernel