次の方法で共有


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 以降で使用できます。
対象プラットフォーム ユニバーサル
Header ntddk.h (Ntddk.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 任意のレベル