Systemreaktivierungsereignisse

Die folgenden Informationen gelten für Aktivierungen aus dem Standbymodus (S3) und Ruhezustand (S4). Informationen zu Aktivierungen aus dem modernen Standbymodus (S0 Low Power Idle) finden Sie unter Übergang zwischen leergeschalteten und aktiven Zuständen.

Ihre Anwendung kann einen Computer, der sich im Energiesparmodus befindet, mithilfe eines geplanten Timers oder eines Geräteereignisses in den Arbeitszustand wiederherstellen. Dies wird als Aktivierungsereignis bezeichnet. Verwenden Sie ein wartebares Timerobjekt, um die Zeit 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 aktiviert werden soll, wenn der Timer signalisiert wird, legen Sie den fResume-Parameter auf TRUE fest.

Wenn das System aufgrund eines Ereignisses (mit Ausnahme eines Netzschalters oder einer 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. Dadurch kann das System schnell wieder in den Standbyzustand versetzt werden, nachdem der Computer nicht mehr benötigt wird. Die folgenden Kriterien bestimmen, ob das System in den Standbyzustand zurückkehrt:

  • Wenn das System automatisch aktiviert wird (d. h., es ist keine Benutzeraktivität vorhanden), wird es heruntergefahren, sobald der unbeaufsichtigte Leerlauftimer abläuft, vorausgesetzt, dass keine Anwendungen SetThreadExecutionState aufgerufen haben, um anzugeben, dass das System erforderlich ist.
  • Gerätebasierte Aktivierungen lösen den unbeaufsichtigten Leerlauftimer standardmäßig aus, es sei denn, der Gerätetreiber gibt an, dass der Benutzer vorhanden ist. Wenn der Treiber die Anwesenheit des Benutzers angibt, wird der Leerlauftimer des Systems verwendet.
  • Wenn das System automatisch aktiviert wird, der Benutzer jedoch neue Eingaben bereitstellt, während das Ereignis behandelt wird, kehrt das System basierend auf dem unbeaufsichtigten Leerlauftimer nicht automatisch in den Standbymodus zurück. Stattdessen kehrt das System basierend auf dem Leerlauftimer des Systems in den Standbymodus zurück.
  • Wenn das System aufgrund von Benutzeraktivitäten reaktiviert wird, kehrt das System basierend auf dem unbeaufsichtigten Leerlaufzeitgeber nicht automatisch in den Standbymodus zurück. Stattdessen kehrt das System basierend auf dem Leerlauftimer des Systems in den Standbymodus zurück.

Wenn das System automatisch aktiviert wird, überträgt es das _ PBT-Ereignis APMRESUMEAUTOMATIC an alle Anwendungen. Da der Benutzer nicht vorhanden ist, sollten die meisten Anwendungen nichts tun. Ereignisbehandlungsanwendungen, z. B. Faxserver, sollten ihre Ereignisse verarbeiten. Um zu bestimmen, 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, überträgt das System zuerst das _ PBT-Ereignis APMRESUMEAUTOMATIC, gefolgt von einem _ PBT-Ereignis APMRESUMESUSPEND. Darüber hinaus wird die Anzeige vom System eingeschaltet. Ihre Anwendung sollte dateien erneut öffnen, die sie geschlossen hat, als das System in den Standbymodus versetzt wurde, und sich auf Benutzereingaben vorbereiten.

Informationen zur Energieverwaltung

Kriterien für den Systemmodus