WdfDeviceWdmAssignPowerFrameworkSettings-Funktion (wdfdevice.h)

[Gilt für KMDF und UMDF]

Die WdfDeviceWdmAssignPowerFrameworkSettings-Methode registriert PoFx-Einstellungen (Power Management Framework) für Einzelkomponentengeräte.

Syntax

NTSTATUS WdfDeviceWdmAssignPowerFrameworkSettings(
  [in] WDFDEVICE                     Device,
  [in] PWDF_POWER_FRAMEWORK_SETTINGS PowerFrameworkSettings
);

Parameter

[in] Device

Ein Handle für das Framework-Geräteobjekt, für das PoFx-Einstellungen angegeben werden.

[in] PowerFrameworkSettings

Ein Zeiger auf eine WDF_POWER_FRAMEWORK_SETTINGS-Struktur , die die PoFx-Einstellungen des Clienttreibers beschreibt.

Rückgabewert

Die WdfDeviceWdmAssignPowerFrameworkSettings-Methode gibt einen NTSTATUS-Wert zurück, der den Erfolg oder Fehler des Vorgangs angibt.

Rückgabecode Beschreibung
STATUS_INFO_LENGTH_MISMATCH
Die Größe der WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS-Struktur ist falsch.
STATUS_INVALID_DEVICE_REQUEST
Der aufrufende Treiber ist nicht der Besitzer der Energierichtlinie des Geräts.
STATUS_INVALID_PARAMETER
Ein ungültiger Einstellungswert wird erkannt.
 

Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.

Hinweise

Die WdfDeviceWdmAssignPowerFrameworkSettings-Methode gilt nur für Einzelkomponentengeräte.

Vor dem Aufrufen dieser Methode muss der Clienttreiber zuerst WdfDeviceAssignS0IdleSettings aufrufen und das IdleTimeoutType-Feld der WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS struktur auf SystemManagedIdleTimeoutout oder SystemManagedIdleTimeoutWithHint festlegen.

Ein Treiber muss WdfDeviceWdmAssignPowerFrameworkSettings vor oder während des ersten Gerätestarts aufrufen. Da ein Gerät mehr als einmal gestartet werden kann, z. B. wenn ein Ressourcenausgleich erfolgt, kann ein Treiber diese Methode innerhalb von EvtDriverDeviceAdd oder EvtDeviceSelfManagedIoInit aufrufen. Das Framework ruft diese Funktionen nur einmal auf, auch wenn das Gerät mehr als einmal gestartet wird.

Alternativ kann der Treiber nachverfolgen, ob er bereits WdfDeviceWdmAssignPowerFrameworkSettings aufgerufen hat, und ihn über eine der folgenden Rückruffunktionen aufrufen: EvtDevicePrepareHardware, EvtDeviceD0Entry, EvtDeviceD0EntryPostInterruptsEnabled oder EvtDeviceSelfManagedIoRestart.

Wenn Ihr Treiber WdfDeviceWdmAssignPowerFrameworkSettings mehrmals aufruft , generiert das Framework einen Überprüfungsfehler.

Das Power Management Framework (PoFx) ist nur auf Windows 8 und höher verfügbar. Bei der Ausführung unter einem Betriebssystem, das PoFx nicht unterstützt, führt WdfDeviceWdmAssignPowerFrameworkSettings keine Aktion aus und gibt STATUS_SUCCESS zurück.

Weitere Informationen finden Sie unter Unterstützen funktionaler Energiezustände und Übersicht über das Power Management Framework.

Beispiele

Im folgenden Codebeispiel initialisiert der Treiber eine WDF_POWER_FRAMEWORK_SETTINGS-Struktur , indem er die funktion WDF_POWER_FRAMEWORK_SETTINGS_INIT aufruft. Der Treiber legt dann manuell einige member der -Struktur fest und ruft dann WdfDeviceWdmAssignPowerFrameworkSettings auf.

NTSTATUS status;
WDF_POWER_FRAMEWORK_SETTINGS poFxSettings;

WDF_POWER_FRAMEWORK_SETTINGS_INIT(&poFxSettings);

poFxSettings.EvtDeviceWdmPostPoFxRegisterDevice = 
                        SingleCompWdmEvtDeviceWdmPostPoFxRegisterDevice;
poFxSettings.EvtDeviceWdmPrePoFxUnregisterDevice =
                        SingleCompWdmEvtDeviceWdmPrePoFxUnregisterDevice;

poFxSettings.Component = &component;
poFxSettings.ComponentIdleStateCallback = 
                        SingleCompWdmIdleStateCallback;
poFxSettings.PoFxDeviceContext = (PVOID) Device;
    
status = WdfDeviceWdmAssignPowerFrameworkSettings(Device, &poFxSettings);

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Zielplattform Universell
KMDF-Mindestversion 1.11
UMDF-Mindestversion 2.33
Kopfzeile wdfdevice.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (siehe Versionsverwaltung der Frameworkbibliothek).)
IRQL PASSIVE_LEVEL
DDI-Complianceregeln DriverCreate(kmdf)

Weitere Informationen

EvtDeviceWdmPostPoFxRegisterDevice

EvtDeviceWdmPrePoFxUnregisterDevice

WDF_POWER_FRAMEWORK_SETTINGS

WDF_POWER_FRAMEWORK_SETTINGS_INIT