SENS-Architektur

Der Systemereignisbenachrichtigungsdienst funktioniert mit dem COM+-Ereignissystem. SENS ist ein Ereignisherausgeber für die Ereignisklassen, die überwacht werden: Netzwerk-, Anmelde- und Strom-/Akkuereignisse. Die Anwendung, die eine Benachrichtigung empfängt, wird als Ereignisabonnent bezeichnet.

Wenn eine Anwendung den Empfang von Benachrichtigungen abonniert, kann sie auch Filter angeben, die den abonnierten Ereignissen zugeordnet sind. SENS- und COM+-Ereignisse verwenden die Filter, um weiter zu bestimmen, wann die Anwendung benachrichtigt werden soll.

Benachrichtigungen sind asynchron, sodass die Anwendung, die die Benachrichtigung empfängt, nicht aktiv sein muss, wenn die Benachrichtigung gesendet wird. Wenn eine Anwendung den Empfang von Benachrichtigungen abonniert, kann sie angeben, ob sie aktiviert werden soll, wenn das Ereignis eintritt, oder später benachrichtigt werden soll, wenn es aktiv ist.

Das Abonnement kann nur vorübergehend und gültig sein, bis die Anwendung nicht mehr ausgeführt wird, oder es kann persistent und gültig sein, bis die Anwendung aus dem System entfernt wird.

Ein COM+-Ereignisdatenspeicher enthält Informationen über den Ereignisherausgeber (SENS), Ereignisabonnenten und Filter. SENS definiert außerdem eine ausgehende Schnittstelle für jede Ereignisklasse in einer Typbibliothek.

Ereignisklasse GUID Schnittstelle
Netzwerkereignisse SENSGUID _ EVENTCLASS _ NETWORK ISensNetwork
Anmeldeereignisse SENSGUID _ EVENTCLASS _ LOGON ISensLogon
Energieereignisse SENSGUID _ EVENTCLASS _ ONNOW ISensOnNow

Um Benachrichtigungen für eines dieser Ereignisse zu erhalten, muss Ihre Anwendung zwei Dinge tun:

  • Abonnieren Sie die SENS-Ereignisse, die Sie interessieren. Verwenden Sie zum Abonnieren eines Ereignisses die Schnittstellen IEventSubscription und IEventSystem in COM+-Ereignissen. Sie müssen einen Bezeichner für die Ereignisklassen und den SENS-Herausgeberbezeichner SENSGUID _ PUBLISHER angeben. Abonnements befinden sich pro Ereignisebene, sodass die abonnierende Anwendung auch angeben muss, welche Ereignisse innerhalb der Klasse von Interesse sind. Jedes Ereignis entspricht einer Methode in der Schnittstelle, die ihrer Ereignisklasse entspricht.
  • Erstellen Sie ein Senkenobjekt mit einer Implementierung für jede Schnittstelle, die Sie behandeln. Weitere Informationen zu diesen Schnittstellen und den jeweils unterstützten Ereignissen finden Sie unter ISensNetwork, ISensLogonund ISensOnNow.

Wenn eines der überwachten Ereignisse auftritt, verarbeitet SENS jedes Abonnement mit zugeordneten Filtern und benachrichtigt die Abonnenten über das COM+-Ereignissystem.