Anbieter zum Thema
Was sind Activity Timers und wie werden sie genutzt?
Der Power-Manager stellt auch eine universelle Timer-Steuerung zur Verfügung. Eine beliebige Anzahl von Timer können in der Registry frei konfiguriert werden. Die Timer basieren auf Events, denen man einen Namen zugeordnet hat (Prozeßglobal nutzbar). Der Name kann der Registry entnommen werden. Alle Anwendungen können bei Bedarf diesen Mechanismus verwenden.
Der einfache Power Manager implementiert zwei „Activity Timer“ für den eigenen Gebrauch um festzustellen ist das System oder die Anwendung aktiv, um die System Power-Zustände ändern zu können.
Beispiel:
[HKLM\SYSTEM\CurrentControlSet\Control\Power\ActivityTimers\SystemActivity]
„Timeout“=dword:A
„WakeSources“=multi_sz:“0x20“
Durch diese Einträge erzeugt der Power Manager drei Events mit folgenden Namen:
- PowerManager/ActivityTimer/SystemActivity
- PowerManager/SystemActivity_Active
- PowerManager/SystemActivity_Inactive
Das Power Management auf Treiber Ebene
Jeder Geräte Treiber, der PM- Unterstützung benötigt, hat folgende Anforderungen zu erfüllen:
- Er muss dem PM über seine Fähigkeiten (was er alles unterstützt) berichten.
- Er muss die verschiedenen Anforderungen und Wünsche des PM reagieren.
- Er kann den Treiber abschalten.
- Er kann den Treiber einschalten.
- Er muss die (Wake-up-)Events organisieren.
Alle Anforderungen an den Treiber werden in einem Zustands-Diagram festgehalten. Der PM (pm.dll) benötigt eine spezielle Schnittstelle (Device Interface Class), um auf die verschiedenen Treiber zugreifen zu können. Die Gerätetreiber sind in vier spezielle Geräte-Gruppen von GUIDs (Global Unique IDentifier) unterteilt und in der pm.h definiert.
#define PMCLASS_GENERIC_DEVICE TEXT(„{A32942B7-920C-486b-B0E6-92A702A99B35}“)
#define PMCLASS_NDIS_MINIPORT TEXT(„{98C5250D-C29A-4985-AE5F-AFE5367E5006}“)
#define PMCLASS_BLOCK_DEVICE TEXT(„{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}“)
#define PMCLASS_DISPLAY TEXT(„{EB91C7C9-8BF6-4a2d-9AB8-69724EED97D1}“)
Eigene GUIDs können in der Registy definiert und abgelegt werden. HKLM\System\CurrentControlSet\Control\Power\Interfaces
(ID:280374)