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 | 任何级别 |