Unterstützende System-Wake-Up
Während sich das System in einem Energiesparzustand befindet, können einige Geräte ein externes Ereignis, z. B. ein eingehendes Netzwerkpaket, erkennen und das System dann reaktivieren. Wenn ein PCI-Gerät beispielsweise über eine Systemreaktivierungsfunktion verfügt, wie im PMC-Register (Power Management Capabilities) des Geräts angegeben, wird das System aktiviert, indem es das PME-Signal (Power Management Event) auf dem PCI-Bus auslöst.
Wenn Ihr Gerät das System aus einem systemweiten Low-Power-Zustand reaktivieren kann, muss die Rückruffunktion EvtDriverDeviceAdd im Besitzer der Energierichtlinie die folgenden beiden Schritte ausführen:
Rufen Sie WdfDeviceAssignSxWakeSettings auf , um Folgendes anzugeben:
- Der Zustand mit geringer Leistung, in den das Gerät eintritt
- Ob Benutzer die Einstellungen im Leerlauf des Geräts steuern können
- Gibt an, ob die Aktivierungsfunktion des Geräts aktiviert oder deaktiviert ist
Weitere Informationen zu diesen Einstellungen finden Sie in der WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS-Struktur .
Rufen Sie WdfDeviceInitSetPowerPolicyEventCallbacks auf, um die folgenden Ereignisrückruffunktionen zu registrieren, wenn Sie sie für Ihr Gerät benötigen:
- EvtDeviceArmWakeFromSx oder EvtDeviceArmWakeFromSxWithReason, mit denen die Gerätehardware auf ein externes Aktivierungsereignis reagieren kann.
- EvtDeviceDisarmWakeFromSx deaktiviert die Fähigkeit des Geräts, auf ein externes Aktivierungsereignis zu reagieren.
- EvtDeviceWakeFromSxTriggered, der den Fahrer informiert, dass der Bus ein Aufwecksignal erkannt hat.
Busfahrer beteiligen sich auch an der Aktivierung des Systems. Der Treiber für den Bus des Geräts bietet in der Regel Rückruffunktionen EvtDeviceEnableWakeAtBus und EvtDeviceDisableWakeAtBus . Diese Funktionen tun alles, was auf dem Busadapter erforderlich ist, um die Fähigkeit eines Geräts zu aktivieren und zu deaktivieren, aus einem Energiesparzustand zu reaktivieren.
Wenn ein Bustreiber feststellt, dass ein Gerät ein Aktivierungssignal ausgelöst hat, muss es WdfDeviceIndicateWakeStatus aufrufen, um das Framework darüber zu informieren, dass die Stromversorgung des Geräts wiederhergestellt werden soll. Das Framework übergibt diese Informationen dann an die restlichen Treiber im Treiberstapel.
Informationen zu Registrierungseinträgen, die die Aktivierungsfunktionen eines Geräts steuern, finden Sie unter Benutzersteuerung des Geräteleidle- und Reaktivverhaltens.