Partager via


PsSetCreateProcessNotifyRoutineEx2, fonction (ntddk.h)

Le PsSetCreateProcessNotifyRoutineEx2 inscrit ou supprime une routine de rappel qui avertit l’appelant lorsqu’un processus est créé ou supprimé.

Syntaxe

NTSTATUS PsSetCreateProcessNotifyRoutineEx2(
  [in] PSCREATEPROCESSNOTIFYTYPE NotifyType,
  [in] PVOID                     NotifyInformation,
  [in] BOOLEAN                   Remove
);

Paramètres

[in] NotifyType

Valeur PSCREATEPROCESSNOTIFYTYPE-type qui indique le type de notification de processus.

[in] NotifyInformation

Adresse des informations de notification pour le type de notification spécifié. Si NotifyType est PsCreateProcessNotifySubsystems, NotifyInformation est un PCREATE_PROCESS_NOTIFY_ROUTINE_EX qui spécifie le point d’entrée du rappel de création de processus fourni par l’appelant.

[in] Remove

Valeur booléenne qui spécifie si PsSetCreateProcessNotifyRoutineEx2 ajoute ou supprime une routine spécifiée de la liste des routines de rappel. Si ce paramètre est TRUE, la routine spécifiée est supprimée de la liste des routines de rappel. Si ce paramètre est FALSE, la routine spécifiée est ajoutée à la liste des routines de rappel. Si Supprimer est TRUE, le système attend également que toutes les routines de rappel en vol se terminent avant de retourner.

Valeur de retour

PsSetCreateProcessNotifyRoutineEx2 retourne l’une des valeurs NTSTATUS suivantes :

Retourner le code 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.

NotifyType n’est pas PsCreateProcessNotifySubsystems.

STATUS_ACCESS_DENIED
L’image qui contient le pointeur de routine de rappel n’a pas IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY définie dans son en-tête d’image.

Remarques

Les pilotes peuvent appeler PsSetCreateProcessNotifyRoutineEx2 pour inscrire leurs routines de notification de création de processus.

Une fois qu’une routine fournie par le pilote est inscrite, elle est appelée avec l’ID unique (indiqué par ProcessId) du processus créé ou supprimé. Le ParentId identifie le processus parent du nouveau processus (il s’agit du parent utilisé pour la priorité, l’affinité, le quota, le jeton et l’héritage du handle, entre autres) s’il a été créé avec l’option de handles d’héritage. S’il a été créé sans les options de handle d’héritage, l’ID de processus parent est NULL.

Si la valeur Créer a la valeur TRUE, le processus du sous-système a été créé ; FALSE indique que le processus a été supprimé.

Lorsque le processus est créé, la fonction de rappel est appelée juste après la création du premier thread du processus. À l’inverse, pour suppression, la fonction est appelée une fois le dernier thread du processus terminé et l’espace d’adressage est sur le point d’être supprimé. Il est possible que le rappel soit appelé uniquement pour suppression sans obtenir d’appel de création dans les cas où le processus a été créé et supprimé sans qu’un thread ne soit jamais créé.

Un pilote doit supprimer toute fonction de rappel qu’elle inscrit avant de décharger. Vous pouvez supprimer le rappel en appelant PsSetCreateProcessNotifyRoutineEx2 avec Supprimer = TRUE.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1703
serveur minimum pris en charge Windows Server 2016
plateforme cible Universel
d’en-tête ntddk.h (include Ntddk.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
règles de conformité DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Voir aussi

PCREATE_PROCESS_NOTIFY_ROUTINE_EX

PsSetCreateProcessNotifyRoutine

PsSetCreateProcessNotifyRoutineEx