SENS アーキテクチャ
システム イベント通知サービスは、COM+ イベント システムと連携します。 SENS は、監視するイベントのクラス (ネットワーク、ログオン、電源/バッテリー イベント) のイベント発行元です。 通知を受信するアプリケーションは、イベント サブスクライバーと呼ばれます。
アプリケーションは、通知を受信するためにサブスクライブするときに、サブスクライブされたイベントに関連付けられているフィルターを指定することもできます。 SENS イベントと COM+ イベントでは、フィルターを使用して、アプリケーションに通知するタイミングをさらに決定します。
通知は非同期であるため、通知を受信するアプリケーションは、通知の送信時にアクティブである必要はありません。 アプリケーションは、通知の受信をサブスクライブするときに、イベントが発生したときにアクティブにするか、後でアクティブになったときに通知するかを指定できます。
サブスクリプションは、アプリケーションの実行が停止するまで一時的で有効な場合があります。または、アプリケーションがシステムから削除されるまでは永続的で有効です。
COM+ イベント データ ストアには、イベント発行元 (SENS)、イベント サブスクライバー、フィルターに関する情報が含まれています。 SENS では、タイプ ライブラリ内の各イベント クラスの送信インターフェイスも事前に定義されています。
イベント クラス | GUID | インターフェイス |
---|---|---|
ネットワーク イベント | SENSGUID_EVENTCLASS_NETWORK | ISensNetwork |
ログオン イベント | SENSGUID_EVENTCLASS_LOGON | ISensLogon |
Power イベント | SENSGUID_EVENTCLASS_ONNOW | ISensOnNow |
これらのイベントの通知を受信するには、アプリケーションで次の 2 つの操作を行う必要があります。
- 関心のある SENS イベントをサブスクライブします。 イベントをサブスクライブするには、COM+ イベントで IEventSubscription インターフェイスと IEventSystem インターフェイスを使用します。 イベント クラスの識別子と SENS パブリッシャー識別子 (SENSGUID_PUBLISHER) を指定する必要があります。 サブスクリプションはイベント レベルごとに行われるので、サブスクライブしているアプリケーションでは、クラス内のどのイベントが対象であるかを指定する必要もあります。 各イベントは、そのイベント クラスに対応する インターフェイス内の メソッドに対応します。
- 処理する各インターフェイスの実装を使用してシンク オブジェクトを作成します。 これらのインターフェイスと各インターフェイスでサポートされているイベントの詳細については、「 ISensNetwork、 ISensLogon、 ISensOnNow 」を参照してください。
監視対象のイベントのいずれかが発生すると、SENS は関連付けられたフィルターを使用して各サブスクリプションを処理し、COM+ イベント システムを介してサブスクライバーに通知します。