Функция IoPropagateActivityIdToThread (ntddk.h)

Подпрограмма IoPropagateActivityIdToThread связывает идентификатор действия из IRP с текущим потоком.

Синтаксис

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

Параметры

[in] Irp

IRP, идентификатор которого будет распространен в поток.

[out] PropagatedId

Указатель на память, выделенную вызывающим объектом для хранения идентификатора в потоке.

OriginalId

После успешного возвращения из вызова сохраняет идентификатор, который был ранее задан в потоке. Драйвер должен вызывать IoClearActivityIdThread с этим указателем при завершении трассировки в том же контексте потока.

Возвращаемое значение

IoPropagateActivityIdToThread возвращает STATUS_SUCCESS, если вызов выполнен успешно. Возможные возвращаемые значения ошибок включают следующие.

Код возврата Описание
STATUS_NOT_FOUND С IRP не связан идентификатор.

Комментарии

Эта подпрограмма должна использоваться драйверами, которые поддерживают трассировку и выдают операции ввода-вывода в рабочем потоке. Обратите внимание, что такие драйверы должны вызывать IoClearActivityIdThread с OriginalId , прежде чем они возвращают управление из потока, если вызов был успешным.

Драйверам, используюющим рабочие элементы ввода-вывода, не нужно вызывать эту подпрограмму, так как подсистема ввода-вывода в этом случае отвечает за распространение идентификаторов действий в потоки.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 8.
Целевая платформа Универсальное
Верхняя часть ntddk.h (включая Ntddk.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень