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运行,除非 ControlCode 是EVENT_ACTIVITY_CTRL_CREATE_ID,在这种情况下,可以在任何 IRQL 中调用函数。
使用 EtwActivityIdControlKernel 函数查询或设置活动标识符内核线程。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe;Ntdll.dll |
IRQL | 请参阅注释部分 |