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 |
---|---|
|
Gibt in Windows XP und früheren Versionen von Windows die Prozess-ID nicht an. |
|
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
PsRemoveCreateThreadNotifyRoutine
PsRemoveLoadImageNotifyRoutine