Freigeben über


WdfDeviceInitRegisterPowerStateChangeCallback-Funktion (wdfdevice.h)

[Gilt nur für KMDF]

Anmerkung

Diese Methode ist nur für die interne Verwendung von Microsoft vorgesehen.

Die WdfDeviceInitRegisterPowerStateChangeCallback -Methode registriert eine vom Framework bereitgestellte Ereignisrückruffunktion, die vom Framework aufgerufen wird, wenn der Zustand des Energiezustandsautomaten eines Geräts geändert wird.

Syntax

NTSTATUS WdfDeviceInitRegisterPowerStateChangeCallback(
  [in] PWDFDEVICE_INIT                                DeviceInit,
  [in] WDF_DEVICE_POWER_STATE                         PowerState,
  [in] PFN_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION EvtDevicePowerStateChange,
  [in] ULONG                                          CallbackTypes
);

Parameter

[in] DeviceInit

Ein vom Aufrufer bereitgestellter Zeiger auf eine WDFDEVICE_INIT Struktur.

[in] PowerState

Ein WDF_DEVICE_POWER_STATE Enumerator, der den Zustand des Energiecomputers angibt, für den der Treiber eine Benachrichtigung anfordert.

[in] EvtDevicePowerStateChange

Ein vom Aufrufer bereitgestellter Zeiger auf die EvtDevicePowerStateChange Ereignisrückruffunktion des Treibers.

[in] CallbackTypes

Eine ORed-Kombination aus WDF_STATE_NOTIFICATION_TYPE-typed-Enumeratoren.

Rückgabewert

Wenn der Vorgang erfolgreich ist, gibt WdfDeviceInitRegisterPowerStateChangeCallback STATUS_SUCCESS zurück. Weitere Rückgabewerte sind:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Ein ungültiger Parameter wurde erkannt.
STATUS_INSUFFICIENT_RESOURCES
Es ist nicht genügend Arbeitsspeicher vorhanden, um den Vorgang abzuschließen.

Bemerkungen

Wenn Ihr Treiber WdfDeviceInitRegisterPowerStateChangeCallbackaufruft, muss er dies tun, bevor er WdfDeviceCreateaufruft.

Weitere Informationen zum Aufrufen WdfDeviceCreatefinden Sie unter State Machines in the Framework.

Beispiele

Im folgenden Codebeispiel wird eine Ereignisrückruffunktion registriert, die vom Framework aufgerufen wird, wenn der Energiezustandsautomat des Geräts den Zustand ändert.

status = WdfDeviceInitRegisterPowerStateChangeCallback(
                                     DeviceInit,
                                     WdfDevStatePowerD0StartingConnectInterrupt,
                                     PciDrvPowerStateChangeCallback,
                                     StateNotificationAllStates
                                     );

Anforderungen

Anforderung Wert
Zielplattform- Universal
Minimale KMDF-Version 1.0
Header- wdfdevice.h (einschließen Wdf.h)
Library Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.)
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)