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_ID 或 EVENT_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 | 请参阅“批注”部分 |