Freigeben über


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
STATUS_SUCCESS
Die angegebene Routine wird jetzt beim Betriebssystem registriert. Das Betriebssystem ruft diese Routine auf, wenn ein neuer Prozess erstellt wird.
STATUS_INVALID_PARAMETER
Die angegebene Routine wurde bereits registriert, oder das Betriebssystem hat seine Grenze für die Registrierung von Rückrufroutinen zur Prozesserstellung erreicht.
STATUS_ACCESS_DENIED
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)

Weitere Informationen

PCREATE_PROCESS_NOTIFY_ROUTINE_EX

PS_CREATE_NOTIFY_INFO

PsSetCreateProcessNotifyRoutine