PsSetCreateProcessNotifyRoutineEx2, fonction (ntddk.h)
La routine 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 de type PSCREATEPROCESSNOTIFYTYPE qui indique le type de notification de processus.
[in] NotifyInformation
Adresse des informations de notification pour le type de notification de processus spécifié. Si NotifyType a la valeur 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 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
PsSetCreateProcessNotifyRoutineEx2 retourne l’une des valeurs NTSTATUS suivantes :
Code de retour | 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’avait 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é. 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 de handle, entre autres) s’il a été créé avec l’option hériter de handles. S’il a été créé sans les options de handle d’héritage, l’ID de processus parent est NULL.
Si la valeur Create a la valeur TRUE, le processus de 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 la suppression, la fonction est appelée une fois que le dernier thread du processus est terminé et que l’espace d’adressage est sur le point d’être supprimé. Il est possible que le rappel soit uniquement appelé pour la suppression sans obtenir d’appel de création dans les cas où le processus a été créé et supprimé sans qu’un thread soit créé.
Un pilote doit supprimer toute fonction de rappel qu’il inscrit avant son déchargement. Vous pouvez supprimer le rappel en appelant PsSetCreateProcessNotifyRoutineEx2 avec Remove = TRUE.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 version 1703 |
Serveur minimal pris en charge | Windows Server 2016 |
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, PowerIrpDDis |
Voir aussi
PCREATE_PROCESS_NOTIFY_ROUTINE_EX