SENS-Architektur
Der Systemereignisbenachrichtigungsdienst funktioniert mit dem COM+-Ereignissystem. SENS ist ein Ereignisherausgeber für die Von ihr überwachten Ereignisklassen: Netzwerk-, Anmelde- und Energie-/Akkuereignisse. Die Anwendung, die eine Benachrichtigung empfängt, wird als Ereignisabonnent bezeichnet.
Wenn eine Anwendung 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 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 vorübergehend und nur gültig sein, bis die Anwendung nicht mehr ausgeführt wird, oder es kann dauerhaft und gültig sein, bis die Anwendung aus dem System entfernt wird.
Ein COM+-Ereignisdatenspeicher enthält Informationen zum Ereignisherausgeber (Event Publisher, SENS), Ereignisabonnenten und Filtern. SENS definiert auch 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+-Ereignisse. Sie müssen einen Bezeichner für die Ereignisklassen und den SENS-Herausgeberbezeichner angeben, SENSGUID_PUBLISHER. Abonnements befinden sich auf ereignisspezifischer Ebene, 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 von Ihnen verarbeitete Schnittstelle. Weitere Informationen zu diesen Schnittstellen und den unterstützten Ereignissen finden Sie unter ISensNetwork, ISensLogon und ISensOnNow .
Wenn eines der überwachten Ereignisse auftritt, verarbeitet SENS jedes Abonnement mit allen zugeordneten Filtern und benachrichtigt die Abonnenten über das COM+-Ereignissystem.