Funzione PsLookupProcessByProcessId (ntifs.h)
La routine PsLookupProcessByProcessId accetta l'ID processo di un processo e restituisce un puntatore a cui fa riferimento la struttura EPROCESS del processo.
Sintassi
NTSTATUS PsLookupProcessByProcessId(
[in] HANDLE ProcessId,
[out] PEPROCESS *Process
);
Parametri
[in] ProcessId
Specifica l'ID processo del processo.
[out] Process
Restituisce un puntatore a cui si fa riferimento alla struttura EPROCESS del processo specificato da ProcessId.
Valore restituito
PsLookupProcessByProcessId restituisce STATUS_SUCCESS in caso di esito positivo o di un valore NTSTATUS appropriato, ad esempio:
Codice restituito | Descrizione |
---|---|
|
Specifica in Windows XP e versioni precedenti di Windows l'ID processo non è stato trovato. |
|
Specifica in Windows Vista e versioni successive di Windows l'ID client specificato non è valido. |
Commenti
Questa routine è disponibile in Windows 2000 e versioni successive.
Se la chiamata a PsLookupProcessByProcessId ha esito positivo, PsLookupProcessByProcessID aumenta il conteggio dei riferimenti sull'oggetto restituito nel parametro Process . Di conseguenza, quando un driver ha completato l'uso del parametroProcess, il driver deve chiamare ObDereferenceObject per dereferenziare il parametro Process ricevuto dalla routine PsLookupProcessByProcessID.
La struttura EPROCESS è una struttura di dati opaca usata internamente dal sistema operativo. Questa struttura può essere passata ad altre routine per accedere a informazioni specifiche in questa struttura.
Un driver di filtro del file system può enumerare processi attivi e quindi chiamare PsLookupProcessByProcessId per convertire un ID processo in una struttura EPROCESS. L'ID processo è disponibile nella routine di creazione del processo. Un driver di filtro del file system può impostare una routine di callback di notifica del processo usando PsSetCreateProcessNotifyRoutine. Nella routine di callback di notifica il driver di filtro del file system può usare il parametro ProcessId passato e chiamare PsLookupProcessByProcessID per individuare la struttura EPROCESS. PsSetCreateThreadNotifyRoutine può essere usato anche per impostare una routine di notifica che restituisce l'ID processo quando viene creato un ID thread.
La routine PsLookupProcessByProcessId contiene codice paginabile.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Vedi anche
PsRemoveCreateThreadNotifyRoutine
PsRemoveLoadImageNotifyRoutine