IoPropagateActivityIdToThread 函数 (ntddk.h)

IoPropagateActivityIdToThread 例程将 IRP 中的活动 ID 与当前线程相关联。

语法

NTSTATUS IoPropagateActivityIdToThread(
  [in]  PIRP    Irp,
  [out] LPGUID  PropagatedId,
        LPCGUID *OriginalId
);

参数

[in] Irp

ID 将传播到线程的 IRP。

[out] PropagatedId

指向调用方分配的内存的指针,用于将 ID 存储在线程中。

OriginalId

成功从调用返回后,保留以前在线程上设置的 ID。 当在同一线程上下文中完成跟踪时,驱动程序必须使用此指针调用 IoClearActivityIdThread

返回值

如果调用成功,IoPropagateActivityIdToThread 返回STATUS_SUCCESS。 可能的错误返回值包括以下内容。

返回代码 描述
STATUS_NOT_FOUND IRP 没有与之关联的 ID。

言论

此例程应由跟踪感知并在工作线程上发出 I/O 的驱动程序使用。 请注意,如果调用成功,此类驱动程序必须使用 OriginalId 调用 IoClearActivityIdThread,然后才能从线程返回控制权。

使用 I/O 工作项的驱动程序不需要调用此例程,因为 I/O 子系统负责向线程传播活动 ID。

要求

要求 价值
最低支持的客户端 从 Windows 8 开始可用。
目标平台 普遍
标头 ntddk.h (包括 Ntddk.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别