EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 Rückruffunktion (wdfdevice.h)
[Gilt für KMDF und UMDF]
Ein Treiber EvtDeviceArmWakeFromS0 Ereignisrückruffunktionsarme (d. r. aktiviert) ein Gerät, sodass es ein Wakesignal auslösen kann, während sich das System im Systemarbeitszustand (S0) befindet.
Syntax
EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 EvtWdfDeviceArmWakeFromS0;
NTSTATUS EvtWdfDeviceArmWakeFromS0(
[in] WDFDEVICE Device
)
{...}
Parameter
[in] Device
Ein Handle zu einem Framework-Geräteobjekt.
Rückgabewert
Wenn der Vorgang erfolgreich ist, muss die EvtDeviceArmWakeFromS0 Rückruffunktion STATUS_SUCCESS oder einen anderen Statuswert zurückgeben, für den NT_SUCCESS(Status) TRUEist. Andernfalls muss ein Statuswert zurückgegeben werden, für den NT_SUCCESS(Status) FALSE-entspricht.
Wenn NT_SUCCESS(Status) FALSE-ist, ruft das Framework nicht die EvtDeviceDisarmWakeFromS0 Rückruffunktion auf. (Das Framework meldet keinen Gerätefehler beim PnP-Manager.)
Bemerkungen
Um eine EvtDeviceArmWakeFromS0 Rückruffunktion zu registrieren, muss ein Treiber WdfDeviceInitSetPowerPolicyEventCallbacksaufrufen. Darüber hinaus muss der Treiber IdleCanWakeFromS0- im IdleCaps Member seiner WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Struktur festlegen.
Die EvtDeviceArmWakeFromS0 Rückruffunktion verarbeitet gerätespezifische Vorgänge, die erforderlich sind, um dem Gerät die Erkennung eines externen Ereignisses zu ermöglichen, das ein Wakesignal auf dem Bus auslöst. Die EvtDeviceEnableWakeAtBus Rückruffunktion des Busfahrers verarbeitet busspezifische Vorgänge, z. B. die Aktivierung des POWER Management Event (PME)-Signals des PCI-Buss.
Wenn der Treiber eine EvtDeviceArmWakeFromS0 Rückruffunktion registriert hat, ruft es das Framework auf, während sich das Gerät noch im D0-Gerätestromzustand befindet, bevor der Bustreiber den Energiezustand des Geräts verringert, aber nachdem das Framework eine Wait/Wake IRP im Auftrag des Treibers gesendet hat.
Der Prozess erfolgt in der folgenden Reihenfolge:
- Das Framework bestimmt, dass das Gerät für einen voreingestellten Zeitraum im Leerlauf war.
- Das Framework ruft die EvtDeviceArmWakeFromS0 Rückruffunktion auf.
- Das Framework fordert den Treiber für den Bus des Geräts auf, die Leistung des Geräts zu senken.
Weitere Informationen dazu, wann das Framework diese Rückruffunktion aufruft, finden Sie unter PnP- und Power Management-Szenarien.
Sie müssen keine EvtDeviceArmWakeFromS0 Rückruffunktion bereitstellen, wenn Ihr Gerät:
- Ist ein USB-Gerät, das "selektives Anhalten" unterstützt.
- Kann nicht heruntergefahren werden, während das System vollständig eingeschaltet bleibt.
- Erfordert keine speziellen Hardwarevorgänge, die es dem Gerät ermöglichen, ein Wakesignal auszulösen.
Weitere Informationen zu dieser Rückruffunktion finden Sie unter Unterstützen von Power-Down-im Leerlauf.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Minimale KMDF-Version | 1.0 |
Mindest-UMDF-Version | 2.0 |
Header- | wdfdevice.h (einschließen Wdf.h) |
IRQL- | PASSIVE_LEVEL |