Freigeben über


EVT_WDF_DEVICE_D0_ENTRY Rückruffunktion (wdfdevice.h)

[Gilt für KMDF und UMDF]

Die EvtDeviceD0Entry Ereignisrückruffunktion eines Treibers führt Vorgänge aus, die benötigt werden, wenn das Gerät des Treibers in den D0-Energiezustand wechselt.

Syntax

EVT_WDF_DEVICE_D0_ENTRY EvtWdfDeviceD0Entry;

NTSTATUS EvtWdfDeviceD0Entry(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE PreviousState
)
{...}

Parameter

[in] Device

Ein Handle zu einem Framework-Geräteobjekt.

[in] PreviousState

Ein WDF_POWER_DEVICE_STATE-typed-Enumerator, der den vorherigen Energiezustand des Geräts identifiziert.

Rückgabewert

Wenn die EvtDeviceD0Entry Rückruffunktion keine Fehler auftritt, muss sie STATUS_SUCCESS oder einen anderen Statuswert zurückgeben, für den NT_SUCCESS(Status) TRUEentspricht. Andernfalls muss ein Statuswert zurückgegeben werden, für den NT_SUCCESS(Status) FALSE-entspricht.

Weitere Informationen zu den Rückgabewerten dieser Rückruffunktion finden Sie unter Melden von Gerätefehlern.

Das Framework ruft die EvtDeviceD0Exit Rückruffunktion des Treibers nicht auf, nachdem die EvtDeviceD0Entry- Rückruffunktion einen Statuswert zurückgibt, für den NT_SUCCESS(Status) FALSE-entspricht.

Bemerkungen

Um eine EvtDeviceD0Entry Rückruffunktion für ein Gerät zu registrieren, muss ein Treiber WdfDeviceInitSetPnpPowerEventCallbacksaufrufen.

Wenn der Treiber eine EvtDeviceD0Entry Rückruffunktion für ein Gerät registriert hat, ruft das Framework die Funktion jedes Mal auf, wenn das Gerät in den Arbeitszustand (D0) wechselt. Ein Gerät wechselt in den D0-Zustand, wenn eine der folgenden Aktionen auftritt:

  • Ein Gerät wird aufgezählt (da das Gerät angeschlossen wurde oder das System neu gestartet wurde).
  • Das System und alle seine Geräte kehren aus einem Energiesparzustand zu ihren Arbeitszuständen zurück.
  • Das Gerät kehrt nach dem Eingeben eines Energiesparzustands in den Arbeitszustand zurück, da es im Leerlauf war (wenn das Gerät den Leerlauf unterstützt).
  • Der Plug and Play-Manager hat die Hardwareressourcen des Systems auf die Geräte des Systems umverteilt.
Das Framework ruft die EvtDeviceD0Entry Rückruffunktion sofort auf, nachdem das Gerät seinen Arbeitszustand (D0) eingibt und für den Treiber verfügbar ist, aber bevor die Unterbrechungen des Geräts aktiviert wurden. Der parameter PreviousState identifiziert den Gerätestromzustand, in dem sich das Gerät befand, bevor es in den D0-Zustand eingegeben wurde. Wenn das Framework zum ersten Mal EvtDeviceD0Entry-aufruft, stellt es einen PreviousState Wert von WdfPowerDeviceD3Finalbereit.

Die Rückruffunktion muss alle Vorgänge ausführen, die erforderlich sind, um das Gerät vollständig betriebsbereit zu machen, z. B. das Laden der Firmware oder das Aktivieren von Gerätefunktionen, die deaktiviert sind, wenn sich das Gerät in einem Energiesparzustand befindet.

Wenn die EvtDeviceD0Entry Rückruffunktion einen Statuswert zurückgibt, für den NT_SUCCESS(Status) FALSE-entspricht, führt das Framework folgendes aus:

  • Wenn das Gerät zum ersten Mal gestartet wird, beginnt das Framework eine geordnete Entfernung Sequenz für das Gerät.
  • Wenn das Gerät von einem Energiesparzustand in den Arbeitszustand zurückkehrt, beginnt das Framework eine Überraschungsentfernung Sequenz für das Gerät.
Das Framework ruft in keiner dieser Situationen die EvtDeviceD0Exit Rückruffunktion des Treibers auf.

Weitere Informationen dazu, wann das Framework die EvtDeviceD0Entry Rückruffunktion aufruft, finden Sie unter PnP- und Power Management-Szenarien.

Weitere Informationen zu Treibern, die diese Rückruffunktion bereitstellen, finden Sie unter Unterstützen von PnP und Power Management in Funktionstreibern.

Die EvtDeviceD0Entry Rückruffunktion wird bei IRQL = PASSIVE_LEVEL aufgerufen. Sie sollten diese Rückruffunktion nicht seitenseitigenvornehmen.

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 (siehe Abschnitt "Hinweise")

Siehe auch

EvtDeviceD0Exit