SENS 体系结构

系统事件通知服务适用于 COM+ 事件系统。 SENS 是它监视的事件类的事件发布者:网络、登录和电源/电池事件。 接收通知的应用程序称为事件订阅服务器。

当应用程序订阅以接收通知时,它还可以指定与订阅的事件关联的筛选器。 SENS 和 COM+ 事件使用筛选器进一步确定何时应通知应用程序。

通知是异步的,因此接收通知的应用程序不必在发送通知时处于活动状态。 当应用程序订阅接收通知时,它可以指定是应在事件发生时激活它,还是稍后在事件处于活动状态时通知它。

订阅可以是暂时性的,并且仅在应用程序停止运行之前有效,也可以是持久且有效的,直到应用程序从系统中删除。

COM+ 事件数据存储包含有关事件发布者 (SENS) 、事件订阅者和筛选器的信息。 SENS 还为类型库中的每个事件类预定义传出接口。

事件类 GUID 接口
网络事件 SENSGUID_EVENTCLASS_NETWORK ISensNetwork
登录事件 SENSGUID_EVENTCLASS_LOGON ISensLogon
电源事件 SENSGUID_EVENTCLASS_ONNOW ISensOnNow

 

若要接收其中任何事件的通知,应用程序必须执行两项操作:

  • 订阅你感兴趣的 SENS 事件。 若要订阅事件,请在 COM+ 事件中使用 IEventSubscriptionIEventSystem 接口。 需要提供事件类的标识符和 SENS 发布者标识符,SENSGUID_PUBLISHER。 订阅基于每个事件级别,因此订阅应用程序还必须指定类中感兴趣的事件。 每个事件对应于接口中与其事件类对应的方法。
  • 为处理的每个接口创建一个具有实现的接收器对象。 有关这些接口以及每个接口支持的事件的详细信息,请参阅 ISensNetworkISensLogon 和 ISensOnNow

当其中一个受监视事件发生时,SENS 使用任何关联的筛选器处理每个订阅,并通过 COM+ 事件系统通知订阅者。