Arquitetura do SENS
O Serviço de Notificação de Eventos do Sistema funciona com o Sistema de Eventos COM+. O SENS é um editor de eventos para as classes de eventos que monitora: eventos de rede, logon e energia/bateria. O aplicativo que recebe uma notificação é chamado de assinante de evento.
Quando um aplicativo assina para receber notificações, ele também pode especificar filtros associados aos eventos inscritos. Os Eventos SENS e COM+ usam os filtros para determinar ainda mais quando o aplicativo deve ser notificado.
As notificações são assíncronas, portanto, o aplicativo que recebe a notificação não precisa estar ativo quando a notificação é enviada. Quando um aplicativo assina para receber notificações, ele pode especificar se ele deve ser ativado quando o evento ocorrer ou notificado posteriormente quando estiver ativo.
A assinatura só pode ser transitória e válida até que o aplicativo pare de ser executado, ou pode ser persistente e válida até que o aplicativo seja removido do sistema.
Um armazenamento de dados de Eventos COM+ contém informações sobre o SENS (editor de eventos), os assinantes de eventos e os filtros. O SENS também predefini uma interface de saída para cada classe de evento em uma biblioteca de tipos.
Classe de eventos | GUID | Interface |
---|---|---|
Eventos de rede | SENSGUID_EVENTCLASS_NETWORK | ISensNetwork |
Eventos de logon | SENSGUID_EVENTCLASS_LOGON | ISensLogon |
Eventos de energia | SENSGUID_EVENTCLASS_ONNOW | ISensOnNow |
Para receber notificações para qualquer um desses eventos, seu aplicativo deve fazer duas coisas:
- Assine os eventos SENS que lhe interessam. Para assinar um evento, use as interfaces IEventSubscription e IEventSystem em Eventos COM+. Você precisa fornecer um identificador para as classes de evento e o identificador do editor SENS, SENSGUID_PUBLISHER. As assinaturas estão em um nível por evento, portanto, o aplicativo de assinatura também deve especificar quais eventos dentro da classe são de interesse. Cada evento corresponde a um método na interface correspondente à classe de evento.
- Crie um objeto coletor com uma implementação para cada interface que você manipula. Consulte ISensNetwork, ISensLogon e ISensOnNow para obter mais informações sobre essas interfaces e os eventos com suporte em cada uma delas.
Quando um dos eventos monitorados ocorre, o SENS processa cada assinatura com quaisquer filtros associados e notifica os assinantes por meio do sistema de eventos COM+.