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)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别