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, die registriert oder entfernt werden soll. Das Betriebssystem ruft diese Routine 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 hinzu- oder entfernt. Wenn dieser Parameter TRUE ist, wird die angegebene Routine aus der Liste der Rückrufroutinen entfernt. Wenn dieser Parameter FALSE ist, wird die angegebene Routine der Liste der Rückrufroutinen hinzugefügt. Wenn Removetrue ist, wartet das System auch, bis alle Rückrufroutinen im Flug 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 auf, wenn ein neuer Prozess erstellt wird. |
|
Die angegebene Routine wurde bereits registriert, oder das Betriebssystem hat seine Grenze für die Registrierung von Rückrufroutinen zur Prozesserstellung erreicht. |
|
Für das Bild, das den Rückrufroutinezeiger enthält, wurde im Bildheader nicht IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY festgelegt. |
Hinweise
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 Treiber der obersten Systemprofilerstellung kann eine Rückrufroutine für die Prozesserstellung registrieren, um nachzuverfolgen, welche Prozesse erstellt und im systeminternen Zustand des Treibers 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 mit Remove auf TRUE aufrufen. Ein Treiber darf diesen Aufruf nicht über die Implementierung der PCREATE_PROCESS_NOTIFY_ROUTINE_EX Rückrufroutine ausführen.
Das Betriebssystem ruft die Prozessbenachrichtigungsroutine des Treibers in PASSIVE_LEVEL in einer kritischen Region mit deaktivierten normalen Kernel-APCs auf. 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, um den Prozess zu beenden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows Vista mit SP1 und Windows Server 2008. |
Zielplattform | Universell |
Header | ntddk.h (include Ntddk.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |