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 上运行,除非 ControlCodeEVENT_ACTIVITY_CTRL_CREATE_ID,在这种情况下,可以在任何 IRQL 上调用该函数。

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

要求

要求 价值
目标平台 普遍
标头 wdm.h (包括 Wdm.h、Ntddk.h)
NtosKrnl.lib
DLL NtosKrnl.exe;Ntdll.dll
IRQL 请参阅“批注”部分

另请参阅

EtwActivityIdControlKernel