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 | 任意のレベル |