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 |
---|---|
|
Die Größe der WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS-Struktur ist falsch. |
|
Der aufrufende Treiber ist nicht der Besitzer der Energierichtlinie des Geräts. |
|
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