Partager via


PsSetCreateProcessNotifyRoutineEx, fonction (ntddk.h)

La routine PsSetCreateProcessNotifyRoutineEx inscrit ou supprime une routine de rappel qui avertit l’appelant lorsqu’un processus est créé ou se ferme.

Syntaxe

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

Paramètres

[in] NotifyRoutine

Pointeur vers la PCREATE_PROCESS_NOTIFY_ROUTINE_EX routine à inscrire ou à supprimer. Le système d’exploitation appelle cette routine chaque fois qu’un nouveau processus est créé.

[in] Remove

Valeur booléenne qui spécifie si PsSetCreateProcessNotifyRoutineEx ajoute ou supprime une routine spécifiée de la liste des routines de rappel. Si ce paramètre a la valeur TRUE, la routine spécifiée est supprimée de la liste des routines de rappel. Si ce paramètre a la valeur FALSE, la routine spécifiée est ajoutée à la liste des routines de rappel. Si Remove a la valeur TRUE, le système attend également que toutes les routines de rappel en cours d’exécution se terminent avant de revenir.

Valeur retournée

PsSetCreateProcessNotifyRoutineEx retourne l’une des valeurs NTSTATUS suivantes :

Code de retour Description
STATUS_SUCCESS
La routine spécifiée est désormais inscrite auprès du système d’exploitation. Le système d’exploitation appelle cette routine chaque fois qu’un nouveau processus est créé.
STATUS_INVALID_PARAMETER
La routine spécifiée a déjà été inscrite ou le système d’exploitation a atteint sa limite d’inscription des routines de rappel de création de processus.
STATUS_ACCESS_DENIED
L’image qui contient le pointeur de routine de rappel n’avait pas IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY définie dans son en-tête d’image.

Remarques

Les pilotes de niveau supérieur peuvent appeler PsSetCreateProcessNotifyRoutineEx pour inscrire une routine PCREATE_PROCESS_NOTIFY_ROUTINE_EX . Un système de fichiers installable (IFS) ou un pilote de profilage du système de niveau supérieur peut inscrire une routine de rappel de création de processus pour suivre les processus créés et supprimés par rapport à l’état interne du pilote sur l’ensemble du système.

Un pilote doit supprimer toutes les routines de rappel qu’il enregistre avant de décharger. Vous pouvez supprimer la routine de rappel en appelant PsSetCreateProcessNotifyRoutineEx avec Remove défini sur TRUE. Un pilote ne doit pas effectuer cet appel à partir de son implémentation de la routine de rappel PCREATE_PROCESS_NOTIFY_ROUTINE_EX .

Le système d’exploitation appelle la routine de notification de processus du pilote à PASSIVE_LEVEL à l’intérieur d’une région critique avec les API de noyau normales désactivées. Lorsqu’un processus est créé, la routine de notification de processus s’exécute dans le contexte du thread qui a créé le nouveau processus. Lorsqu’un processus est supprimé, la routine de notification de processus s’exécute dans le contexte du dernier thread à quitter du processus.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows Vista avec SP1 et Windows Server 2008.
Plateforme cible Universal
En-tête ntddk.h (incluez Ntddk.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Voir aussi

PCREATE_PROCESS_NOTIFY_ROUTINE_EX

PS_CREATE_NOTIFY_INFO

PsSetCreateProcessNotifyRoutine