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