Rendszer ébresztési eseményei
Az alábbi információk a alvásból (S3) és hibernált (S4)történő ébresztésekre vonatkoznak. A modern készenléti állapotból (S0 alacsony energiafogyasztású inaktív állapotból) való ébresztésről .
Az alkalmazás ütemezett időzítő vagy eszközesemény használatával visszaállíthatja az alvó állapotban lévő számítógépet a munkaállapotba. Ezt ébresztési eseménynek nevezik. Használjon várakozó időzítőobjektumot annak megadásához, hogy a rendszer mikor ébredjen fel. Az objektum létrehozásához használja a CreateWaitableTimer függvényt. Az időzítő beállításához használja a SetWaitableTimer függvényt. A pDueTime paraméter határozza meg, hogy mikor lesz jelezve az időzítő. Ha meg szeretné adni, hogy a rendszer felébredjen az időzítő jelzésekor, állítsa az fResume paramétert a TRUE .
Ha a rendszer egy esemény miatt automatikusan felébred (a kapcsoló vagy a felhasználói tevékenység kivételével), a rendszer automatikusan beállít egy felügyelet nélküli tétlen időzítőt legalább 2 percre. Ez az időzítő elegendő időt ad az alkalmazásoknak a SetThreadExecutionState függvény meghívására, hogy jelezzék, hogy foglaltak. Ez az idő lehetővé teszi, hogy a rendszer gyorsan visszatérjen az alvó állapotba, miután már nincs szükség a számítógépre. A következő feltételek határozzák meg, hogy a rendszer visszatér-e az alvó állapotba:
- Ha a rendszer automatikusan felébred (azaz nincs felhasználói tevékenység), a felügyelet nélküli tétlen időzítő lejárata után azonnal leáll, feltéve, hogy egyetlen alkalmazás sem hívott meg SetThreadExecutionState, hogy jelezze, hogy a rendszer szükséges.
- Az eszközalapú ébresztések alapértelmezés szerint aktiválják a felügyelet nélküli tétlen időzítőt, kivéve, ha az eszközillesztő felhasználói jelenlétet jelez. Ha az illesztőprogram felhasználói jelenlétet jelez, akkor a rendszer tétlen időzítőt használ.
- Ha a rendszer automatikusan felébred, de a felhasználó új bemenetet ad az esemény kezelése közben, a rendszer nem tér vissza automatikusan alvó állapotba a felügyelet nélküli tétlen időzítő alapján. Ehelyett a rendszer a rendszer tétlenségi időzítője alapján visszaáll az alvó állapotba.
- Ha a rendszer felhasználói tevékenység miatt felébred, a rendszer nem tér vissza automatikusan alvó állapotba a felügyelet nélküli tétlenség időzítője alapján. Ehelyett a rendszer a rendszer tétlenségi időzítője alapján visszaáll az alvó állapotba.
Amikor a rendszer automatikusan felébred, az PBT_APMRESUMEAUTOMATIC eseményt közvetíti az összes alkalmazásnak. Mivel a felhasználó nincs jelen, a legtöbb alkalmazásnak semmit sem kell tennie. Az eseménykezelő alkalmazásoknak, például a faxkiszolgálóknak kell kezelniük az eseményeket. Annak megállapításához, hogy a rendszer ebben az állapotban van-e, hívja meg az IsSystemResumeAutomatic függvényt. Amikor a rendszer automatikusan felébred, a kijelző nem kapcsol be automatikusan.
Ha a rendszer felhasználói tevékenység miatt felébred, a rendszer először a PBT_APMRESUMEAUTOMATIC eseményt, majd egy PBT_APMRESUMESUSPEND eseményt közvetíti. Emellett a rendszer bekapcsolja a kijelzőt. Az alkalmazásnak újra meg kell nyitnia azokat a fájlokat, amelyeket a rendszer alvó állapotba lépésekor bezárt, és fel kell készülnie a felhasználói bemenetre.
Kapcsolódó témakörök