System-Wake-up-Ereignisse
Die folgenden Informationen gelten für Wakes aus Ruhezustand (S3) und Ruhezustand (S4). Für Wakes aus modern Standby (S0 Low Power Idle) lesen Sie bitte Übergang zwischen Leerlauf und aktiven Zuständen.
Ihre Anwendung kann einen Computer, der sich in einem Ruhezustand befindet, mithilfe eines geplanten Timers oder eines Geräteereignisses in den Arbeitszustand wiederherstellen. Dies wird als Wake-up-Ereignisbezeichnet. Verwenden Sie ein wartebares Timerobjekt, um die Uhrzeit anzugeben, zu der das System aktiviert werden soll. Verwenden Sie zum Erstellen des Objekts die CreateWaitableTimer--Funktion. Verwenden Sie zum Festlegen des Timers die SetWaitableTimer--Funktion. Der pDueTime Parameter gibt an, wann der Timer signalisiert wird. Um anzugeben, dass das System beim Signal des Timers aktiviert werden soll, legen Sie den fResume Parameter auf TRUEfest.
Wenn das System aufgrund eines Ereignisses (außer Netzschalter oder Benutzeraktivität) automatisch aktiviert wird, legt das System automatisch einen unbeaufsichtigten Leerlauftimer auf mindestens 2 Minuten fest. Dieser Timer gibt Anwendungen ausreichend Zeit, um die SetThreadExecutionState Funktion aufzurufen, um anzugeben, dass sie ausgelastet sind. Dieses Mal ermöglicht es dem System, schnell in den Ruhezustand zurückzukehren, nachdem der Computer nicht mehr benötigt wird. Die folgenden Kriterien bestimmen, ob das System in den Ruhezustand zurückkehrt:
- Wenn das System automatisch aktiviert wird (d. h. keine Benutzeraktivität vorhanden ist), wird es heruntergefahren, sobald der unbeaufsichtigte Leerlaufzeitgeber abläuft, vorausgesetzt, dass keine Anwendungen SetThreadExecutionState aufgerufen haben, um anzugeben, dass das System erforderlich ist.
- Gerätebasierte Wakes lösen standardmäßig den unbeaufsichtigten Leerlauftimer aus, es sei denn, der Gerätetreiber gibt die Benutzerpräsenz an. Wenn der Treiber die Benutzerpräsenz angibt, wird der System-Leerlauftimer verwendet.
- Wenn das System automatisch aktiviert wird, der Benutzer aber während der Behandlung des Ereignisses neue Eingaben bereitstellt, kehrt das System nicht automatisch basierend auf dem unbeaufsichtigten Leerlaufzeitgeber in den Ruhezustand zurück. Stattdessen kehrt das System basierend auf dem System-Leerlauftimer in den Ruhezustand zurück.
- Wenn das System aufgrund von Benutzeraktivitäten aktiviert wird, kehrt das System basierend auf dem unbeaufsichtigten Leerlaufzeitgeber nicht automatisch in den Ruhezustand zurück. Stattdessen kehrt das System basierend auf dem System-Leerlaufzeitgeber in den Ruhezustand zurück.
Wenn das System automatisch aktiviert wird, sendet es das PBT_APMRESUMEAUTOMATIC Ereignis an alle Anwendungen. Da der Benutzer nicht vorhanden ist, sollten die meisten Anwendungen nichts tun. Ereignisbehandlungsanwendungen, z. B. Faxserver, sollten ihre Ereignisse behandeln. Um festzustellen, ob sich das System in diesem Zustand befindet, rufen Sie die IsSystemResumeAutomatic-Funktion auf. Wenn das System automatisch aktiviert wird, wird die Anzeige nicht automatisch aktiviert.
Wenn das System aufgrund von Benutzeraktivitäten aktiviert wird, sendet das System zuerst das PBT_APMRESUMEAUTOMATIC Ereignis, gefolgt von einem PBT_APMRESUMESUSPEND Ereignis. Darüber hinaus aktiviert das System die Anzeige. Ihre Anwendung sollte Dateien erneut öffnen, die geschlossen wurden, wenn das System in den Ruhezustand eingegeben und die Benutzereingabe vorbereitet hat.
Verwandte Themen