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