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

Siehe auch

PCREATE_PROCESS_NOTIFY_ROUTINE_EX

PS_CREATE_NOTIFY_INFO

PsSetCreateProcessNotifyRoutine