次の方法で共有


PsLookupThreadByThreadId 関数 (ntifs.h)

PsLookupThreadByThreadId ルーチンは、スレッドのスレッド ID を受け取り、スレッドの ETHREAD 構造体への参照ポインターを返します。

構文

NTSTATUS PsLookupThreadByThreadId(
  [in]  HANDLE   ThreadId,
  [out] PETHREAD *Thread
);

パラメーター

[in] ThreadId

スレッドのスレッド ID を指定します。

[out] Thread

ThreadId によって指定されたスレッドの ETHREAD 構造体への参照ポインターを返します。

戻り値

PsLookupThreadByThreadId は、成功した場合にSTATUS_SUCCESS、または次のような適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_INVALID_PARAMETER
スレッド ID が見つかりませんでした。

注釈

このルーチンは、Windows 2000 以降のバージョンで使用できます。

PsLookupThreadByThreadId の呼び出しが成功した場合、PsLookupThreadByThreadIdThread パラメーターで返されるオブジェクトの参照カウントを増やします。 そのため、ドライバーが Thread パラメーターを使用して完了すると、ドライバーは ObDereferenceObject を呼び出して、PsLookupThreadByThreadId ルーチンから受信した Thread パラメーターを逆参照する必要があります。

ETHREAD 構造体は、オペレーティング システムによって内部的に使用される不透明なデータ構造です。 この構造体を他のルーチンに渡して、この構造体内の特定の情報にアクセスできます。

ファイル システム フィルター ドライバーは 、PsLookupThreadByThreadId を呼び出してスレッド ID を ETHREAD 構造体に変換することで、アクティブなスレッドを列挙できます。 スレッド ID は、スレッド作成ルーチンで使用できます。 ファイル システム フィルター ドライバーは、 PsSetCreateThreadNotifyRoutine を使用してスレッド通知コールバック ルーチンを設定できます。 通知コールバック ルーチンでは、ファイル システム フィルター ドライバーは ThreadId パラメーターで渡された を使用し、 PsLookupThreadByThreadId を呼び出して ETHREAD 構造体を見つけることができます。

PsLookupThreadByThreadId ルーチンには、ページング可能なコードが含まれています。

要件

要件
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

ObDereferenceObject

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsLookupProcessByProcessId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine