EVT_ACX_FACTORY_CIRCUIT_POWER_DOWN Rückruffunktion (acxcircuit.h)

Der EVT_ACX_FACTORY_CIRCUIT_POWER_DOWN Rückrufs wird vom Treiber verwendet, um Funktionen im Powerdownpfad eines ACXFACTORYCIRCUIT-Objekts hinzuzufügen.

Syntax

EVT_ACX_FACTORY_CIRCUIT_POWER_DOWN EvtAcxFactoryCircuitPowerDown;

NTSTATUS EvtAcxFactoryCircuitPowerDown(
  WDFDEVICE Device,
  ACXFACTORYCIRCUIT Factory,
  WDF_POWER_DEVICE_STATE TargetState
)
{...}

Parameter

Device

Ein WDFDEVICE-Objekt (beschrieben in Zusammenfassung der Frameworkobjekte), das der ACX-Leitung zugeordnet ist.

Factory

Das vorhandene ACXFACTORYCIRCUIT-Objekt der Leitungsfabrik. Weitere Informationen zu ACX-Objekten finden Sie unter Zusammenfassung der ACX-Objekte.

TargetState

Eine WDF_POWER_DEVICE_STATE-Enumeration , die den Energiezustand des Zielgeräts identifiziert.

Rückgabewert

Gibt zurück STATUS_SUCCESS , wenn der Aufruf erfolgreich war. Andernfalls wird ein entsprechender Fehlercode zurückgegeben. Weitere Informationen finden Sie unter Verwenden von NTSTATUS-Werten.

Hinweise

Um eine EvtAcxFactoryCircuitPrepareHardware-Rückruffunktion zu registrieren, muss ein Treiber AcxFactoryCircuitInitSetAcxCircuitPnpPowerCallbacks aufrufen.

Wenn der Treiber eine EvtCircuitPowerDown-Rückruffunktion registriert hat, ruft das ACX-Framework die Funktion jedes Mal auf, wenn eines der Geräte des Treibers seinen Arbeitsstatus (D0) verlässt. Ein Gerät verlässt den D0-Zustand, wenn eine der folgenden Aktionen auftritt:

  • Das System und alle geräte sind dabei, ihren Arbeitszustand zu verlassen und in einen Low-Power-Zustand zu gelangen.
  • Das Gerät wird in einen Energiesparzustand versetzt, da es sich im Leerlauf befindet, wenn das Gerät den Leerlauf mit geringer Leistung unterstützt.
  • Der Plug & Play-Manager versucht, die Hardwareressourcen des Systems neu zu verteilen.
  • Ein Benutzer hat in der Regel über die Benutzeroberfläche einer Anwendung angegeben, dass er das Gerät entfernen möchte.
  • Das Framework ruft auch die Rückruffunktion EvtFactoryCircuitPowerDown auf, nachdem ein Gerät unerwartet entfernt wurde (überraschend entfernt).

Weitere Informationen dazu, wann das Framework diese Rückruffunktion aufruft, finden Sie unter PnP- und Energieverwaltungsszenarien.

Sofern das Gerät nicht überraschend entfernt wurde, ruft das ACX-Framework diese Rückruffunktion sofort nach der Deaktivierung der Unterbrechungen des Geräts auf, aber bevor die Leistung des Geräts von D0 verringert wird und bevor WDF den EvtDeviceD0Exit-Rückruf des Treibers auf den zugehörigen Geräten aufruft. Der TargetState-Parameter identifiziert den Geräteleistungsstatus, den das Gerät gerade eingeben wird.

Die EvtFactoryCircuitPowerDown-Rückruffunktion muss alle erforderlichen Vorgänge ausführen, bevor die Hardware des ACXFACTORYCIRCUT in den angegebenen Energiesparzustand wechselt, z. B. das Speichern von Informationen, die der Treiber später benötigt, um die Hardware des ACXFACTORYCIRCUIT in den D0-Energiezustand wiederherzustellen.

Wenn TargetState WdfPowerDeviceD3Final ist, sollten Sie davon ausgehen, dass das System deaktiviert ist, das zugeordnete Gerät gerade entfernt werden soll oder dass ein Ressourcenausgleich ausgeführt wird. Wenn Ihr Treiber Informationen speichern muss, sollte er sie auf den Datenträger oder ein anderes permanentes Speichermedium schreiben.

Weitere Informationen zu Treibern, die diese Rückruffunktion bereitstellen, finden Sie unter Unterstützung der PnP- und Energieverwaltung im Funktionstreiber.

ACX-Anforderungen

AcX-Mindestversion: 1.0

Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.

Anforderungen

Anforderung Wert
Header acxcircuit.h
IRQL PASSIVE_LEVEL

Weitere Informationen