Übersicht über den Warte-/Reaktivierungsvorgang
Der Aktivierungsmechanismus des Betriebssystems funktioniert wie in der folgenden Abbildung dargestellt.
Während sich das System und das Gerät im betriebsfähigen Zustand befinden, bestimmt der Besitzer der Energierichtlinie für ein Gerät, dass das Gerät für die Aktivierung aktiviert ("bewaffnet") werden soll. Der Besitzer der Energierichtlinie fordert eine Energie-IRP (PoRequestPowerIrp mit Nebencode IRP_MN_WAIT_WAKE) an seine PDO an, um alle Treiber in seinem Gerätestapel zu informieren. In der Anforderung gibt der Richtlinienbesitzer eine Rückrufroutine an (nicht identisch mit einer IoCompletion-Routine ).
Der Energie-Manager sendet den IRP über den E/A-Manager an den oberen Rand des Gerätestapels.
Treiber legen IoCompletion-Routinen fest und übergeben das IRP bis zum Erreichen des Bustreibers.
Der Bustreiber aktiviert die Aktivierung auf dem physischen Gerät, sofern möglich, und markiert das IRP als ausstehend. Bei Bedarf fordert sie auch eine Warte-/Reaktivierungs-IRP für das übergeordnete Element an.
Einige Zeit später kommt ein externes Wecksignal.
Der Bustreiber schließt die IRP_MN_WAIT_WAKE ab.
Der E/A-Manager ruft IoCompletion-Routinen auf, die festgelegt wurden, als Treiber den IRP im Stapel übergeben haben.
Der E/A-Manager ruft die Vom Richtlinienbesitzer festgelegte Rückrufroutine auf, wenn er die IRP angefordert hat.
Die IRP_MN_WAIT_WAKE Anforderung ändert den Energiezustand des Geräts oder des Systems nicht. Es ermöglicht lediglich das Aufwecken des Geräts, sodass später, wenn das Gerät in einen geeigneten Ruhezustand wechselt, ein externes Signal dazu führt, dass das Gerät (und möglicherweise das System) erwacht.
Wenn ein Aktivierungssignal eingeht, ist das Verhalten des Fahrers gleich, unabhängig davon, ob das Gerät das System oder nur sich selbst aktiviert. Wenn das Gerät für die Aktivierung aktiviert ist und sich das System in einem Ruhezustand befindet, aus dem das Gerät es wiedererwecken kann, wird das Gerät das System wecken. Wenn das Gerät für die Aktivierung aktiviert ist und sich das System im Betriebszustand befindet, wird nur das Gerät aktiviert.
Da Computer und Geräte im Design variieren, insbesondere in Bezug auf Energieebenen, sind die unterstützten System- und Geräteleistungszustände und damit die Zustände, die Warten/Aufwachen unterstützen können, nicht in allen Hardwarekonfigurationen identisch. Daher muss jeder Treiber, der eine Energierichtlinie für sein Gerät besitzt, und jeder Bustreiber sorgfältig auf die Funktionen der einzelnen Konfiguration achten, auf der er ausgeführt wird. Weitere Informationen finden Sie unter Ermitteln, ob ein Gerät das System reaktivieren kann.
Weitere Informationen zu Warte-/Reaktivierungsvorgängen finden Sie unter Grundlegendes zum Pfad von Warte-/Wake-IRPs durch eine Gerätestruktur und Übersicht über warte-/reaktivierungs-IRP-Vervollständigung.