Freigeben über


PsLookupThreadByThreadId-Funktion (ntifs.h)

Die PsLookupThreadByThreadId-Routine akzeptiert die Thread-ID eines Threads und gibt einen Zeiger zurück, auf den verwiesen wird, auf die ETHREAD-Struktur des Threads.

Syntax

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

Parameter

[in] ThreadId

Gibt die Thread-ID des Threads an.

[out] Thread

Gibt einen Zeiger zurück, auf den verwiesen wird, auf die ETHREAD-Struktur des Threads, der durch die ThreadId angegeben wird.

Rückgabewert

PsLookupThreadByThreadId gibt STATUS_SUCCESS nach Erfolg oder einen geeigneten NTSTATUS-Wert zurück, z. B.:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Die Thread-ID wurde nicht gefunden.

Hinweise

Diese Routine ist unter Windows 2000 und höheren Versionen verfügbar.

Wenn der Aufruf von PsLookupThreadByThreadId erfolgreich ist, erhöht PsLookupThreadByThreadId die Verweisanzahl für das im Thread-Parameter zurückgegebene Objekt. Wenn ein Treiber mit dem Thread-Parameter abgeschlossen wurde, muss der Treiber Daher ObDereferenceObject aufrufen, um den thread-Parameter zu dereferenzieren, der von der PsLookupThreadByThreadId-Routine empfangen wurde.

Die ETHREAD-Struktur ist eine undurchsichtige Datenstruktur, die intern vom Betriebssystem verwendet wird. Diese Struktur kann an andere Routinen übergeben werden, um auf bestimmte Informationen in dieser Struktur zuzugreifen.

Ein Dateisystemfiltertreiber kann aktive Threads aufzählen, indem PsLookupThreadByThreadId aufgerufen wird, um eine Thread-ID in eine ETHREAD-Struktur zu konvertieren. Die Thread-ID ist in der Threaderstellungsroutine verfügbar. Ein Dateisystemfiltertreiber kann mithilfe von PsSetCreateThreadNotifyRoutine eine Rückrufroutine für Threadbenachrichtigungen festlegen. In der Benachrichtigungsrückrufroutine kann der Dateisystemfiltertreiber den übergebenen ThreadId-Parameter verwenden und PsLookupThreadByThreadId aufrufen, um die ETHREAD-Struktur zu suchen.

Die PsLookupThreadByThreadId-Routine enthält ausgelagerten Code.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Weitere Informationen

ObDereferenceObject

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsLookupProcessByProcessId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine