Поделиться через


Функция 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 (include Ntddk.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень