IoSetActivityIdIrp 函数 (ntddk.h)

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

语法

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

参数

[in] Irp

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

[in, optional] 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)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 如果传入 GUID,则为任何级别,否则PASSIVE_LEVEL。