SENS-arkitektur
System Event Notification Service fungerar med COM+ Event System. SENS är en händelseutgivare för de händelser som den övervakar: nätverks-, inloggnings- och ström-/batterihändelser. Programmet som tar emot ett meddelande kallas händelseprenumerant.
När ett program prenumererar på att ta emot meddelanden kan det också ange filter som är associerade med de prenumererade händelserna. SENS- och COM+-händelser använder filtren för att ytterligare avgöra när programmet ska meddelas.
Meddelanden är asynkrona, så programmet som tar emot meddelandet behöver inte vara aktivt när meddelandet skickas. När ett program prenumererar på att ta emot meddelanden kan det ange om det ska aktiveras när händelsen inträffar eller meddelas senare när den är aktiv.
Prenumerationen kan vara tillfällig och giltig endast tills programmet slutar köras, eller så kan den vara beständig och giltig tills programmet tas bort från systemet.
Ett COM+-händelsedatalager innehåller information om händelseutgivaren (SENS), händelseprenumeranter och filter. SENS fördefinierade också ett utgående gränssnitt för varje händelseklass i ett typbibliotek.
Händelseklass | GUID | Gränssnitt |
---|---|---|
Nätverkshändelser | SENSGUID_EVENTCLASS_NETWORK | ISensNetwork |
Inloggningshändelser | SENSGUID_EVENTCLASS_LOGON | ISensLogon |
Power-händelser | SENSGUID_EVENTCLASS_ONNOW | ISensOnNow |
För att få meddelanden om någon av dessa händelser måste programmet göra två saker:
- Prenumerera på SENS-händelser som intresserar dig. Om du vill prenumerera på en händelse använder du gränssnitten IEventSubscription och IEventSystem i COM+ Events. Du måste ange en identifierare för händelseklasserna och SENS-utgivarens ID SENSGUID_PUBLISHER. Prenumerationer är på en händelsenivå, så det prenumererande programmet måste också ange vilka händelser i klassen som är av intresse. Varje händelse motsvarar en metod i gränssnittet som motsvarar dess händelseklass.
- Skapa ett mottagarobjekt med en implementering för varje gränssnitt som du hanterar. Se ISensNetwork, ISensLogonoch ISensOnNow för mer information om dessa gränssnitt och de händelser som stöds i var och en.
När en av de övervakade händelserna inträffar bearbetar SENS varje prenumeration med eventuella associerade filter och meddelar prenumeranterna via COM+-händelsesystemet.