PsSetCreateProcessNotifyRoutineEx-Funktion (ntddk.h)
Die PsSetCreateProcessNotifyRoutineEx Routine registriert oder entfernt eine Rückrufroutine, die den Aufrufer benachrichtigt, wenn ein Prozess erstellt oder beendet wird.
Syntax
NTSTATUS PsSetCreateProcessNotifyRoutineEx(
[in] PCREATE_PROCESS_NOTIFY_ROUTINE_EX NotifyRoutine,
[in] BOOLEAN Remove
);
Parameter
[in] NotifyRoutine
Ein Zeiger auf die PCREATE_PROCESS_NOTIFY_ROUTINE_EX Routine zum Registrieren oder Entfernen. Das Betriebssystem ruft diese Routine immer dann auf, wenn ein neuer Prozess erstellt wird.
[in] Remove
Ein boolescher Wert, der angibt, ob PsSetCreateProcessNotifyRoutineEx- eine angegebene Routine aus der Liste der Rückrufroutinen hinzufügen oder entfernen. Wenn dieser Parameter TRUEist, wird die angegebene Routine aus der Liste der Rückrufroutinen entfernt. Wenn dieser Parameter FALSEist, wird die angegebene Routine der Liste der Rückrufroutinen hinzugefügt. Wenn RemoveTRUEist, wartet das System auch, bis alle In-Flight-Rückrufroutinen abgeschlossen sind, bevor sie zurückgegeben werden.
Rückgabewert
PsSetCreateProcessNotifyRoutineEx gibt einen der folgenden NTSTATUS-Werte zurück:
Rückgabecode | Beschreibung |
---|---|
|
Die angegebene Routine wird jetzt beim Betriebssystem registriert. Das Betriebssystem ruft diese Routine immer dann auf, wenn ein neuer Prozess erstellt wird. |
|
Die angegebene Routine wurde bereits registriert, oder das Betriebssystem hat seinen Grenzwert für die Registrierung von Rückrufroutinen zur Prozesserstellung erreicht. |
|
Das Bild, das den Rückrufroutinezeiger enthält, hat nicht IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY in der Bildkopfzeile festgelegt. |
Bemerkungen
Treiber der höchsten Ebene können PsSetCreateProcessNotifyRoutineEx- aufrufen, um eine PCREATE_PROCESS_NOTIFY_ROUTINE_EX Routine zu registrieren. Ein installierbares Dateisystem (IFS) oder ein Systemprofiltreiber auf höchster Ebene registriert möglicherweise eine Rückrufroutine zur Prozesserstellung, um nachzuverfolgen, welche Prozesse erstellt und für den internen Zustand des Treibers im gesamten System gelöscht werden.
Ein Treiber muss alle Rückrufroutinen entfernen, die er registriert, bevor er entladen wird. Sie können die Rückrufroutine entfernen, indem Sie PsSetCreateProcessNotifyRoutineEx- aufrufen, wobei Remove auf TRUEfestgelegt ist. Ein Treiber darf diesen Aufruf nicht aus der Implementierung der PCREATE_PROCESS_NOTIFY_ROUTINE_EX Rückrufroutine ausführen.
Das Betriebssystem ruft die Prozessbenachrichtigungsroutine des Treibers bei PASSIVE_LEVEL in einem kritischen Bereich auf, wobei normalen Kernel-APCs deaktiviert deaktiviert sind. Wenn ein Prozess erstellt wird, wird die Prozessbenachrichtigungsroutine im Kontext des Threads ausgeführt, der den neuen Prozess erstellt hat. Wenn ein Prozess gelöscht wird, wird die Prozessbenachrichtigungsroutine im Kontext des letzten Threads ausgeführt, der vom Prozess beendet werden soll.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar ab Windows Vista mit SP1 und Windows Server 2008. |
Zielplattform- | Universal |
Header- | ntddk.h (include Ntddk.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |