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 |
---|---|
|
La taille de la structure WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS est incorrecte. |
|
Le pilote appelant n’est pas le propriétaire de la stratégie d’alimentation de l’appareil. |
|
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