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 |
---|---|
|
Die angegebene NotifyRoutine ist jetzt beim System registriert. |
|
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
PsSetCreateProcessNotifyRoutineEx