Megosztás a következőn keresztül:


A rendszer alvó állapotának feltételei

Mindaddig, amíg a rendszer megállapítja, hogy felhasználói vagy alkalmazástevékenység van, nem fog alvó állapotba lépni. A rendszer képes észlelni bizonyos tevékenységeket, például a felhasználói bemenetet vagy a hálózati kommunikációt. Vannak azonban más tevékenységek is, amelyeket a rendszer nem tud észlelni. Egy bemutatóalkalmazáshoz például képernyőre van szükség a megjelenítéshez. Előfordulhat azonban, hogy az alkalmazás tétlen a bemutató során, ami miatt a rendszer kikapcsolja a kijelzőt.

Ha értesíteni szeretné a rendszert arról, hogy az alkalmazás foglalt, használja a SetThreadExecutionState függvényt. Ez a függvény megakadályozza, hogy a rendszer alvó állapotba lépjen, vagy kikapcsolja a kijelzőt az alkalmazás futtatása közben.

A bemutató- és multimédiás alkalmazásoknak meg kell hívniuk a SetThreadExecutionState függvényt ES_DISPLAY_REQUIRED, hogy a rendszer tudja, hogy nem szabad alvó állapotba helyeznie a kijelzőt. Az eseménykezelő alkalmazásoknak, például a bejövő faxok kezeléséhez szükséges eszközöknek meg kell hívniuk SetThreadExecutionStateES_SYSTEM_REQUIRED, kezelnie kell az eseményt, majd törölnie kell a jelzőt, hogy a rendszer alvó állapotba térjen. Vegye figyelembe, hogy a legtöbb hatékonyságnövelő alkalmazásnak nem kell használnia SetThreadExecutionState, mert a rendszer általában felhasználói bemenet alapján tudja meghatározni a tevékenységet.

Az utolsó felhasználói bemenet óta eltelt idő megtartásához a rendszer egy üresjárati időzítőt és egy rendszer üresjárati időzítőt használ. A rendszer összehasonlítja az üresjárati időzítőket az energiatervben konfigurált értékekkel. Ha a megjelenítés tétlen időzítő értéke nagyobb, mint a megjelenítési időtúllépési érték, és egyetlen szál sem kérte a megjelenítést a SetThreadExecutionStateES_DISPLAY_REQUIREDmeghívásával, a rendszer kikapcsolja a megjelenítést. Hasonlóképpen, ha a rendszer tétlen időzítője nagyobb, mint a rendszer időtúllépési értéke, és egyetlen alkalmazás sem kérte a rendszert a SetThreadExecutionStateES_SYSTEM_REQUIREDmeghívásával, a rendszer alvó állapotba lép.

A rendszer számos olyan alkalmazást tart fenn, amelyek SetThreadExecutionState. A rendszer nyomon követi az SetThreadExecutionState hívását, és ennek megfelelően módosítja a számlálót. Ha ez a számláló eléri a nullát, és nincs felhasználói bemenet, a rendszer alvó állapotba lép.

Ha az energia alacsony, az alkalmazások felhasználói beavatkozást kérhetnek, vagy kérhetik, hogy a rendszer függessze fel magát. A rendszerműveletet a SetSuspendState függvénnyel függesztheti fel.

Ha a rendszer automatikusan felébred (PBT_APMRESUMEAUTOMATIC), az időzítők egyike sem releváns. További információ: rendszer ébresztési eseményei.

Beírás alvó állapotba

Amikor a rendszer alvó állapotba kerül, automatikusan megőrzi a teljes rendszer és az összes alkalmazás állapotát. Ezért a legtöbb alkalmazásnak nem kell semmilyen különleges műveletet végrehajtania. Azok az alkalmazások, amelyeknek konkrét műveleteket kell végrehajtaniuk, mielőtt a rendszerváltások regisztrálhatnak az energiaeseményekre.

Amikor a rendszer PBT_APMSUSPEND eseményt küld, minden alkalmazásnak két másodperce van a szükséges műveletek végrehajtására, mielőtt a rendszer alvó állapotba vált. Az alkalmazásoknak korlátozniuk kell, hogy milyen műveletet hajtanak végre az eseményre válaszul annak érdekében, hogy az összes műveletet a kiszabott idő alatt hajthassák végre.

A Power Management

rendszer ébresztési eseményei