PsSetCreateProcessNotifyRoutine-Funktion (ntddk.h)

Die PsSetCreateProcessNotifyRoutine-Routine fügt eine vom Treiber bereitgestellte Rückrufroutine zu einer Liste von Routinen hinzu, die aufgerufen werden sollen, wenn ein Prozess erstellt oder gelöscht wird.

Syntax

NTSTATUS PsSetCreateProcessNotifyRoutine(
  [in] PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
  [in] BOOLEAN                        Remove
);

Parameter

[in] NotifyRoutine

Gibt den Einstiegspunkt einer Rückrufroutine für die Prozesserstellung an, die vom Aufrufer bereitgestellt wird. Siehe PCREATE_PROCESS_NOTIFY_ROUTINE.

[in] Remove

Gibt an, ob die von NotifyRoutine angegebene Routine der Liste der Benachrichtigungsroutinen des Systems hinzugefügt oder daraus entfernt werden soll. Bei FALSE wird die angegebene Routine der Liste hinzugefügt. True gibt an, dass die angegebene Routine aus der Liste entfernt wird.

Rückgabewert

PsSetCreateProcessNotifyRoutine kann eine der folgenden Eigenschaften zurückgeben:

Rückgabecode Beschreibung
STATUS_SUCCESS
Die angegebene NotifyRoutine ist jetzt beim System registriert.
STATUS_INVALID_PARAMETER
Die angegebene NotifyRoutine wurde bereits registriert, sodass dieser Aufruf ein redundanter Aufruf ist, oder das System hat seine Grenze für die Registrierung von Rückrufen zur Prozesserstellung erreicht.

Hinweise

Treiber der obersten Ebene können PsSetCreateProcessNotifyRoutine aufrufen, um ihre Benachrichtigungsroutinen zur Prozesserstellung einzurichten, die als PCREATE_PROCESS_NOTIFY_ROUTINE implementiert werden.

Ein IFS- oder Systemprofiltreiber der obersten Ebene kann einen Rückruf zur Prozesserstellung registrieren, um die systemweite Erstellung und Löschung von Prozessen anhand des internen Zustands des Treibers nachzuverfolgen. Für Windows Vista und höhere Versionen von Windows kann das System bis zu 64 Rückrufroutinen für die Prozesserstellung registrieren.

Ein Treiber muss alle Rückrufe entfernen, die er registriert, bevor er entladen wird. Sie können den Rückruf entfernen, indem Sie PsSetCreateProcessNotify mit Remove = TRUE aufrufen. Ein Treiber darf diesen Aufruf nicht über seine Implementierung der PCREATE_PROCESS_NOTIFY_ROUTINE Rückrufroutine ausführen.

Nachdem eine vom Treiber bereitgestellte Routine registriert wurde, wird sie aufgerufen, wobei Create auf TRUE festgelegt ist, nachdem der anfängliche Thread innerhalb des neu erstellten Prozesses erstellt wurde, der durch das Eingabehandle ProcessId festgelegt wurde. Das Eingabehandle ParentId identifiziert den übergeordneten Prozess des neu erstellten Prozesses (dies ist das übergeordnete Element, das unter anderem für Priorität, Affinität, Kontingent, Token und Handle-Vererbung verwendet wird).

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header ntddk.h (include Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IrqlPsPassive(wdm), PowerIrpDDis(wdm)

Weitere Informationen

PCREATE_PROCESS_NOTIFY_ROUTINE

PsGetCurrentProcessId

PsSetCreateProcessNotifyRoutineEx

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine