Prozessstatus-Benachrichtigungsroutine für Änderungen

Zweck

Ermöglicht die Benachrichtigung von Kernelerweiterungen über wichtige Prozess-und Threadstatusübergänge.

Syntax

void prochadd_handler ( term,  type,  id)
struct proch *term;
int type;
long id;
void proch_reg_handler ( term,  type,  id)
struct prochr *term;
int type;
long id;

Parameter

Element Beschreibung
Bedingung Verweist auf die im Aufruf Prochadd verwendete Struktur Proch oder auf die im Aufruf Proch_reg verwendete Struktur Prochr .
Typ Definiert das gemeldete Statusänderungsereignis: Prozessinitialisierung, Prozessbeendigung, Prozessexec, Threadinitialisierung oder Threadbeendigung. Diese Werte sind in der Datei /usr/include/sys/proc.h definiert. Die Werte, die als Typ übergeben werden können, hängen auch davon ab, wie der Aufruf angefordert wird.

Mögliche prochadd_handler Typ -Werte:

PROCH_INITIALISIEREN
Prozess wird initialisiert.
PROCH_BEENDEN
Prozess wird beendet.
PROCH_EXEC
Prozess ist dabei, ein neues Programm auszuführen.
THREAD_INITIALISIEREN
Ein neuer Thread wird erstellt.
THREAD_BEENDEN
Ein Thread wird beendet.

Mögliche proch_reg_handler Typ -Werte:

PROCHR_INITIALISIEREN
Prozess wird initialisiert.
PROCHR_BEENDEN
Prozess wird beendet.
PROCHR_EXEC
Prozess ist dabei, ein neues Programm auszuführen.
PROCHR_THREAD_INIT
Ein neuer Thread wird erstellt.
PROCHR_THREAD_TERM
Ein Thread wird beendet.
id Definiert entweder die Prozess-ID oder die Thread-ID.

Beschreibung

Der Benachrichtigungsaufruf wird entweder mit dem Prochadd -oder dem Proch_reg -Kernel-Service eingerichtet. Wenn Sie die Benachrichtigung über den Kernel-Service Prochadd anfordern, folgt der Aufruf der Syntax, die zuerst als prochadd_handlerangezeigt wird. Wenn Sie die Benachrichtigung mit dem Proch_reg -Kernel-Service anfordern, folgt der Aufruf der Syntax, die als zweite angezeigt wird: proch_reg_handler.

Bei der Prozessinitialisierung wird die Routine Prozessstatusänderungsbenachrichtigung in der Ausführungsumgebung eines übergeordneten Prozesses für die Initialisierung eines neu erstellten untergeordneten Prozesses aufgerufen. Für Kernelprozesse wird die Benachrichtigungsroutine aufgerufen, wenn der Initialisierung -Kernel-Service aufgerufen wird, um die Initialisierung abzuschließen.

Bei der Prozessbeendigung werden die Benachrichtigungsroutinen aufgerufen, bevor der Kernel Standardbeendigungsprozeduren verarbeitet. Die Routinen müssen so geschrieben werden, dass sie keine Ressourcen unter dem Beendigungsprozess zuordnen. Die Benachrichtigungsroutine wird unter dem Prozessimage des beendenden Prozesses aufgerufen.