Compartir a través de


Función PsSetCreateProcessNotifyRoutineEx (ntddk.h)

La rutina PsSetCreateProcessNotifyRoutineEx registra o quita una rutina de devolución de llamada que notifica al autor de la llamada cuando se crea o sale un proceso.

Sintaxis

NTSTATUS PsSetCreateProcessNotifyRoutineEx(
  [in] PCREATE_PROCESS_NOTIFY_ROUTINE_EX NotifyRoutine,
  [in] BOOLEAN                           Remove
);

Parámetros

[in] NotifyRoutine

Puntero a la rutina PCREATE_PROCESS_NOTIFY_ROUTINE_EX para registrar o quitar. El sistema operativo llama a esta rutina cada vez que se crea un nuevo proceso.

[in] Remove

Valor booleano que especifica si PsSetCreateProcessNotifyRoutineEx agregará o quitará una rutina especificada de la lista de rutinas de devolución de llamada. Si este parámetro es TRUE, la rutina especificada se quita de la lista de rutinas de devolución de llamada. Si este parámetro es FALSE, la rutina especificada se agrega a la lista de rutinas de devolución de llamada. Si Remove es TRUE, el sistema también espera a que se completen todas las rutinas de devolución de llamada en curso antes de volver.

Valor devuelto

PsSetCreateProcessNotifyRoutineEx devuelve uno de los siguientes valores NTSTATUS:

Código devuelto Descripción
STATUS_SUCCESS
La rutina especificada ahora está registrada con el sistema operativo. El sistema operativo llama a esta rutina cada vez que se crea un nuevo proceso.
STATUS_INVALID_PARAMETER
La rutina especificada ya estaba registrada o el sistema operativo ha alcanzado su límite para registrar rutinas de devolución de llamada de creación de procesos.
STATUS_ACCESS_DENIED
La imagen que contiene el puntero rutina de devolución de llamada no tenía IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY establecido en su encabezado de imagen.

Comentarios

Los controladores de nivel superior pueden llamar a PsSetCreateProcessNotifyRoutineEx para registrar una rutina de PCREATE_PROCESS_NOTIFY_ROUTINE_EX . Un sistema de archivos instalable (IFS) o un controlador de generación de perfiles de sistema de nivel superior podría registrar una rutina de devolución de llamada de creación de procesos para realizar un seguimiento de los procesos que se crean y eliminan en el estado interno del controlador en todo el sistema.

Un controlador debe quitar las rutinas de devolución de llamada que registre antes de descargarla. Puede quitar la rutina de devolución de llamada llamando a PsSetCreateProcessNotifyRoutineEx con Remove establecido en TRUE. Un controlador no debe realizar esta llamada desde su implementación de la rutina de devolución de llamada de PCREATE_PROCESS_NOTIFY_ROUTINE_EX .

El sistema operativo llama a la rutina process-notify del controlador en PASSIVE_LEVEL dentro de una región crítica con las API de kernel normales deshabilitadas. Cuando se crea un proceso, la rutina de notificación de procesos se ejecuta en el contexto del subproceso que creó el nuevo proceso. Cuando se elimina un proceso, la rutina de notificación de proceso se ejecuta en el contexto del último subproceso para salir del proceso.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows Vista con SP1 y Windows Server 2008.
Plataforma de destino Universal
Encabezado ntddk.h (incluya Ntddk.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

PCREATE_PROCESS_NOTIFY_ROUTINE_EX

PS_CREATE_NOTIFY_INFO

PsSetCreateProcessNotifyRoutine