Partager via


WdfDeviceWdmAssignPowerFrameworkSettings, fonction (wdfdevice.h)

[S’applique à KMDF et UMDF]

La méthode WdfDeviceWdmAssignPowerFrameworkSettings enregistre les paramètres de l’infrastructure de gestion de l’alimentation (PoFx) pour les appareils à composant unique.

Syntaxe

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

Paramètres

[in] Device

Handle de l’objet d’appareil framework pour lequel les paramètres PoFx sont spécifiés.

[in] PowerFrameworkSettings

Pointeur vers une structure WDF_POWER_FRAMEWORK_SETTINGS qui décrit les paramètres PoFx du pilote client.

Valeur retournée

La méthode WdfDeviceWdmAssignPowerFrameworkSettings retourne une valeur NTSTATUS qui indique la réussite ou l’échec de l’opération.

Code de retour Description
STATUS_INFO_LENGTH_MISMATCH
La taille de la structure WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS est incorrecte.
STATUS_INVALID_DEVICE_REQUEST
Le pilote appelant n’est pas le propriétaire de la stratégie d’alimentation de l’appareil.
STATUS_INVALID_PARAMETER
Une valeur Settings non valide est détectée.
 

Cette méthode peut également retourner d’autres valeurs NTSTATUS.

Remarques

La méthode WdfDeviceWdmAssignPowerFrameworkSettings s’applique uniquement aux appareils à composant unique.

Avant d’appeler cette méthode, le pilote client doit d’abord appeler WdfDeviceAssignS0IdleSettings et définir le champ IdleTimeoutType de la structure WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS sur SystemManagedIdleTimeout ou SystemManagedIdleTimeoutWithHint.

Un pilote doit appeler WdfDeviceWdmAssignPowerFrameworkSettings avant ou pendant le premier démarrage d’un appareil. Étant donné qu’un appareil peut démarrer plusieurs fois, par exemple si un rééquilibrage des ressources se produit, un pilote peut appeler cette méthode à partir de EvtDriverDeviceAdd ou EvtDeviceSelfManagedIoInit. L’infrastructure appelle ces fonctions une seule fois, même si l’appareil est démarré plusieurs fois.

Le pilote peut également suivre s’il a déjà appelé WdfDeviceWdmAssignPowerFrameworkSettings et l’appeler à partir de l’une des fonctions de rappel suivantes : EvtDevicePrepareHardware, EvtDeviceD0Entry, EvtDeviceD0EntryPostInterruptsEnabled ou EvtDeviceSelfManagedIoRestart.

Si votre pilote appelle WdfDeviceWdmAssignPowerFrameworkSettings plusieurs fois, le framework génère une erreur de vérificateur.

L’infrastructure de gestion de l’alimentation (PoFx) est disponible uniquement sur Windows 8 et versions ultérieures. Lors de l’exécution sur un système d’exploitation qui ne prend pas en charge PoFx, WdfDeviceWdmAssignPowerFrameworkSettings n’effectue aucune action et retourne STATUS_SUCCESS.

Pour plus d’informations, consultez Prise en charge des états d’alimentation fonctionnels et Vue d’ensemble de l’infrastructure de gestion de l’alimentation.

Exemples

Dans l’exemple de code suivant, le pilote initialise une structure WDF_POWER_FRAMEWORK_SETTINGS en appelant la fonction WDF_POWER_FRAMEWORK_SETTINGS_INIT . Le pilote définit ensuite manuellement certains des membres de la structure, puis appelle WdfDeviceWdmAssignPowerFrameworkSettings.

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);

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8
Plateforme cible Universal
Version KMDF minimale 1.11
Version UMDF minimale 2,33
En-tête wdfdevice.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (consultez Gestion des versions de la bibliothèque d’infrastructure).)
IRQL PASSIVE_LEVEL
Règles de conformité DDI DriverCreate(kmdf)

Voir aussi

EvtDeviceWdmPostPoFxRegisterDevice

EvtDeviceWdmPrePoFxUnregisterDevice

WDF_POWER_FRAMEWORK_SETTINGS

WDF_POWER_FRAMEWORK_SETTINGS_INIT