PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK Rückruffunktion (wdm.h)

Die DevicePowerNotRequiredCallback-Rückrufroutine benachrichtigt den Gerätetreiber, dass das Gerät nicht im D0-Energiezustand bleiben muss.

Syntax

PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK PoFxDevicePowerNotRequiredCallback;

void PoFxDevicePowerNotRequiredCallback(
  [in] PVOID Context
)
{...}

Parameter

[in] Context

Ein Zeiger auf den Gerätekontext. Der Gerätetreiber verwendet diesen Kontext, um Informationen zum aktuellen Energiezustand des Geräts zu speichern. Der Gerätetreiber hat diesen Zeiger im DeviceContext-Element der PO_FX_DEVICE-Struktur angegeben, die der Treiber zum Registrieren des Geräts beim Power Management Framework (PoFx) verwendet hat. Dieser Kontext ist für PoFx undurchsichtig.

Rückgabewert

Keine

Bemerkungen

Wenn PoFx die DevicePowerNotRequiredCallback-Routine des Treibers aufruft, muss der Treiber zunächst entscheiden, ob er einen Übergang zu einem Dx-Zustand mit geringem Stromverbrauch initiieren möchte (indem er eine IRP_MN_SET_POWER Anforderung nach unten im Gerätestapel sendet) oder im D0-Zustand verbleiben soll. Als Nächstes muss der Treiber die PoFxCompleteDevicePowerNotRequired-Routine aufrufen, ohne auf den Abschluss eines Dx-Übergangs zu warten, um PoFx darüber zu informieren, dass der Treiber seine Antwort auf den DevicePowerNotRequiredCallback-Rückruf abgeschlossen hat. Der Treiber kann PoFxCompleteDevicePowerNotRequired aufrufen, bevor oder nachdem die DevicePowerNotRequiredCallback-Routine zurückgegeben wird.

Wenn sich ein Gerät im Zustand D0 befindet und sich der Fx-Zustand oder der Aktiv-/Leerlaufzustand einer Komponente im Gerät ändert, bewertet PoFx, ob das Gerät in den Dx-Zustand mit niedriger Leistung wechseln kann oder im D0-Zustand verbleiben muss. Wenn das Gerät in einen Dx-Zustand mit geringem Stromverbrauch gelangen kann, ruft PoFx die DevicePowerNotRequiredCallback-Routine des Treibers auf.

Wenn das Gerät als Reaktion auf einen DevicePowerNotRequiredCallback-Rückruf in einen Low-Power-Dx-Zustand wechselt, PoFx jedoch später feststellt, dass das Gerät in den D0-Zustand wechseln muss, ruft PoFx die DevicePowerRequiredCallback-Routine des Treibers auf. Als Reaktion auf diesen Aufruf muss das Gerät in den D0-Zustand wechseln.

Beispiele

Um eine DevicePowerNotRequiredCallback-Rückrufroutine zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der Rückrufroutine identifiziert, die Sie definieren. Windows bietet eine Reihe von Rückruffunktionstypen für Treiber. Das Deklarieren einer Funktion mithilfe der Rückruffunktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Voraussetzung für das Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine DevicePowerNotRequiredCallback-Rückrufroutine mit dem Namen MyDevicePowerNotRequiredCallbackzu definieren, verwenden Sie den typ PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK, wie in diesem Codebeispiel gezeigt:

PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK MyDevicePowerNotRequiredCallback;

Implementieren Sie dann Ihre Rückrufroutine wie folgt:

_Use_decl_annotations_
VOID
  MyDevicePowerNotRequiredCallback(
    PVOID Context
    )
  {
      // Function body
  }

Der PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK Funktionstyp ist in der Wdm.h-Headerdatei definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie die _Use_decl_annotations_ Anmerkung ihrer Funktionsdefinition hinzu. Die _Use_decl_annotations_ Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für WDM-Treiber. Informationen zu _Use_decl_annotations_finden Sie unter Verhalten von Funktionen mit Anmerkungen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt ab Windows 8.
Zielplattform Desktop
Kopfzeile wdm.h (include Wudfwdm.h)
IRQL Wird unter IRQL <= DISPATCH_LEVEL aufgerufen.

Weitere Informationen

DevicePowerRequiredCallback

IRP_MN_SET_POWER

PO_FX_DEVICE

PoFxCompleteDevicePowerNotRequired

PoFxRegisterDevice