Freigeben über


PsLookupProcessByProcessId-Funktion (ntifs.h)

Die PsLookupProcessByProcessId-Routine akzeptiert die Prozess-ID eines Prozesses und gibt einen Zeiger zurück, auf den verwiesen wird, auf die EPROCESS-Struktur des Prozesses.

Syntax

NTSTATUS PsLookupProcessByProcessId(
  [in]  HANDLE    ProcessId,
  [out] PEPROCESS *Process
);

Parameter

[in] ProcessId

Gibt die Prozess-ID des Prozesses an.

[out] Process

Gibt einen Zeiger zurück, auf den verwiesen wird, auf die von ProcessId angegebene EPROCESS-Struktur des Prozesses.

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Gibt in Windows XP und früheren Versionen von Windows an, dass die Prozess-ID nicht gefunden wurde.
STATUS_INVALID_CID

Gibt in Windows Vista und höheren Versionen von Windows an, dass die angegebene Client-ID ungültig ist.

Hinweise

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

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

Die EPROCESS-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 Prozesse aufzählen und dann PsLookupProcessByProcessId aufrufen, um eine Prozess-ID in eine EPROCESS-Struktur zu konvertieren. Die Prozess-ID ist in der Prozesserstellungsroutine verfügbar. Ein Dateisystemfiltertreiber kann mithilfe von PsSetCreateProcessNotifyRoutine eine Rückrufroutine für Prozessbenachrichtigungen festlegen. In der Benachrichtigungsrückrufroutine kann der Dateisystemfiltertreiber den übergebenen ProcessId-Parameter verwenden und PsLookupProcessByProcessID aufrufen, um die EPROCESS-Struktur zu suchen. PsSetCreateThreadNotifyRoutine kann auch verwendet werden, um eine Benachrichtigungsroutine festzulegen, die die Prozess-ID zurückgibt, wenn eine Thread-ID erstellt wird.

Die PsLookupProcessByProcessId-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

PsLookupThreadByThreadId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateProcessNotifyRoutine

PsSetLoadImageNotifyRoutine