Compartir a través de


Función PsLookupProcessByProcessId (ntifs.h)

La rutina PsLookupProcessByProcessId acepta el identificador de proceso de un proceso y devuelve un puntero al que se hace referencia a la estructura EPROCESS del proceso.

Sintaxis

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

Parámetros

[in] ProcessId

Especifica el identificador de proceso del proceso.

[out] Process

Devuelve un puntero al que se hace referencia a la estructura EPROCESS del proceso especificado por ProcessId.

Valor devuelto

PsLookupProcessByProcessId devuelve STATUS_SUCCESS si se ejecuta correctamente o un valor NTSTATUS adecuado, como:

Código devuelto Descripción
STATUS_INVALID_PARAMETER
Especifica en Windows XP y versiones anteriores de Windows que no se encontró el identificador de proceso.
STATUS_INVALID_CID

Especifica en Windows Vista y versiones posteriores de Windows que el identificador de cliente especificado no es válido.

Comentarios

Esta rutina está disponible en Windows 2000 y versiones posteriores.

Si la llamada a PsLookupProcessByProcessId se realiza correctamente, PsLookupProcessByProcessID aumenta el recuento de referencias del objeto devuelto en el parámetro Process . Por lo tanto, cuando un controlador se haya completado con el parámetro Process , el controlador debe llamar a ObDereferenceObject para desreferenciar el parámetro Process recibido de la rutina PsLookupProcessByProcessID .

La estructura EPROCESS es una estructura de datos opaca usada internamente por el sistema operativo. Esta estructura se puede pasar a otras rutinas para acceder a información específica de esta estructura.

Un controlador de filtro del sistema de archivos puede enumerar los procesos activos y, a continuación, llamar a PsLookupProcessByProcessId para convertir un identificador de proceso en una estructura EPROCESS. El identificador de proceso está disponible en la rutina de creación del proceso. Un controlador de filtro del sistema de archivos puede establecer una rutina de devolución de llamada de notificación de proceso mediante PsSetCreateProcessNotifyRoutine. En la rutina de devolución de llamada de notificación, el controlador de filtro del sistema de archivos puede usar el parámetro ProcessId pasado y llamar a PsLookupProcessByProcessID para localizar la estructura EPROCESS. PsSetCreateThreadNotifyRoutine también se puede usar para establecer una rutina de notificación que devuelve el identificador de proceso cuando se crea un identificador de subproceso.

La rutina PsLookupProcessByProcessId contiene código paginable.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Consulte también

ObDereferenceObject

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsLookupThreadByThreadId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateProcessNotifyRoutine

PsSetLoadImageNotifyRoutine