Freigeben über


PsLookupProcessByProcessId-Funktion (ntifs.h)

Die PsLookupProcessByProcessId Routine akzeptiert die Prozess-ID eines Prozesses und gibt einen Referenzzeiger auf die EPROCESS-Struktur des Prozesses zurück.

Syntax

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

Parameter

[in] ProcessId

Gibt die Prozess-ID des Prozesses an.

[out] Process

Gibt einen verweisden Zeiger auf die EPROCESS-Struktur des Prozesses zurück, der durch ProcessId-angegeben wird.

Rückgabewert

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

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

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

Bemerkungen

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

Wenn der Aufruf von PsLookupProcessByProcess Id erfolgreich ist, erhöht PsLookupProcessByProcessID die Verweisanzahl für das im Process Parameter zurückgegebene Objekt. Wenn ein Treiber mit dem parameter Process abgeschlossen wurde, muss der Treiber daher ObDereferenceObject- aufrufen, um den Process Parameter abzuleiten, 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 eine Prozessbenachrichtigungsrückrufroutine mit PsSetCreateProcessNotifyRoutinefestlegen. In der Benachrichtigungsrückrufroutine kann der Dateisystemfiltertreiber die übergebene ProcessId Parameter verwenden und PsLookupProcessByProcessID-aufrufen, um die EPROCESS-Struktur zu finden. Die 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- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= APC_LEVEL

Siehe auch

ObDereferenceObject

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread-

PsGetCurrentThreadId

PsLookupThreadByThreadId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateProcessNotifyRoutine

PsSetLoadImageNotifyRoutine