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 |
---|---|
|
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. |
|
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. |
|
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) |