IoSetActivityIdIrp 函数 (ntddk.h)

IoSetActivityIdIrp 例程将活动 ID 与 IRP 相关联。

语法

NTSTATUS IoSetActivityIdIrp(
  [in]           PIRP    Irp,
  [in, optional] LPCGUID Guid
);

参数

[in] Irp

要与之关联的活动 ID 的 IRP。

[in, optional] Guid

指向 GUID 的指针,该 GUID 表示要存储在 IRP 中的 ID。 如果为 NULL,IoSetActivityIdIrp 会尝试从当前线程检索活动 ID(如果最初发出请求的线程)。

返回值

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

返回代码 说明
STATUS_NOT_SUPPORTED 未提供 GUID,ETW 活动 ID 不可用。
STATUS_UNSUCCESSFUL 尚未在 IRP 上启用 I/O 跟踪提供程序。

注解

驱动程序应仅在已使用 IoAllocateIrp (分配的 IRP 上使用 IoSetActivityIdIrp,并使用 IoFreeIrp) 释放。 否则,可能会导致内存泄漏。

要求

要求
最低受支持的客户端 从Windows 8开始可用。
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 如果传入了 GUID,则为任意级别,否则PASSIVE_LEVEL。