SENS Architecture
Le service de notification d’événements système fonctionne avec le système d’événements COM+. SENS est un éditeur d’événements pour les classes d’événements qu’il surveille : événements réseau, ouverture de session et événements d’alimentation/batterie. L’application qui reçoit une notification est appelée abonné aux événements.
Lorsqu’une application s’abonne pour recevoir des notifications, elle peut également spécifier des filtres associés aux événements abonnés. LES événements SENS et COM+ utilisent les filtres pour déterminer davantage quand l’application doit être avertie.
Les notifications étant asynchrones, l’application qui reçoit la notification n’a pas besoin d’être active lors de l’envoi de la notification. Lorsqu’une application s’abonne pour recevoir des notifications, elle peut spécifier si elle doit être activée lorsque l’événement se produit ou si elle doit être avertie ultérieurement lorsqu’elle est active.
L’abonnement peut être temporaire et valide uniquement jusqu’à ce que l’application cesse de s’exécuter, ou il peut être persistant et valide jusqu’à ce que l’application soit supprimée du système.
Un magasin de données d’événements COM+ contient des informations sur l’éditeur d’événements (SENS), les abonnés aux événements et les filtres. SENS prédéfini également une interface sortante pour chaque classe d’événements d’une bibliothèque de types.
Classe d'événements | GUID | Interface |
---|---|---|
Événements réseau | SENSGUID_EVENTCLASS_NETWORK | ISensNetwork |
Événements de connexion | SENSGUID_EVENTCLASS_LOGON | ISensLogon |
Événements Power | SENSGUID_EVENTCLASS_ONNOW | ISensOnNow |
Pour recevoir des notifications pour l’un de ces événements, votre application doit effectuer deux opérations :
- Abonnez-vous aux événements SENS qui vous intéressent. Pour vous abonner à un événement, utilisez les interfaces IEventSubscription et IEventSystem dans les événements COM+. Vous devez fournir un identificateur pour les classes d’événements et l’identificateur d’éditeur SENS, SENSGUID_PUBLISHER. Les abonnements se trouvent au niveau d’un événement par événement. L’application d’abonnement doit également spécifier les événements de la classe qui sont intéressants. Chaque événement correspond à une méthode dans l’interface correspondant à sa classe d’événements.
- Créez un objet récepteur avec une implémentation pour chaque interface que vous gérez. Consultez ISensNetwork, ISensLogon et ISensOnNow pour plus d’informations sur ces interfaces et les événements pris en charge dans chacune d’elles.
Quand l’un des événements surveillés se produit, SENS traite chaque abonnement avec tous les filtres associés et avertit les abonnés via le système d’événements COM+.