IWDFDevice2 ::AssignSxWakeSettings, méthode (wudfddi.h)
[Avertissement : UMDF 2 est la dernière version de UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide de UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et il existe une prise en charge limitée de UMDF 1 sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Bien démarrer avec UMDF.]
La méthode AssignSxWakeSettings fournit des informations fournies par le pilote sur la capacité d’un appareil à déclencher un signal de veille alors que l’appareil et le système sont dans un état à faible alimentation.
Syntaxe
HRESULT AssignSxWakeSettings(
[in] DEVICE_POWER_STATE DxState,
[in] WDF_POWER_POLICY_SX_WAKE_USER_CONTROL UserControlOfWakeSettings,
[in] WDF_TRI_STATE Enabled
);
Paramètres
[in] DxState
Énumérateur DEVICE_POWER_STATE-typé qui identifie l’état d’alimentation de l’appareil faible que l’appareil entre lorsque l’état de l’alimentation du système passe à un état de faible alimentation wakeable. La valeur de DxState ne peut pas être PowerDeviceD0. DEVICE_POWER_STATE valeurs sont définies dans wdm.h.
[in] UserControlOfWakeSettings
Énumérateur WDF_POWER_POLICY_SX_WAKE_USER_CONTROL-typé qui indique si les utilisateurs ont la possibilité de modifier les paramètres de veille de l’appareil.
[in] Enabled
Énumérateur WDF_TRI_STATE-typé qui indique si l’appareil peut réveiller le système (autrement dit, restaurer le système sur S0) lorsque le système est dans un état de faible alimentation. Ce membre peut avoir l’une des valeurs suivantes :
WdfTrue - Le réveil du système est activé.
WdfFalse - Le réveil du système est désactivé.
WdfUseDefault : le réveil du système est initialement activé par défaut ; mais si le membre UserControlOfWakeSettings est défini sur WakeAllowUserControl, le paramètre utilisateur ou le fichier INF du pilote remplace la valeur initiale.
Si le réveil du système est activé et que le système est sur le point d’entrer dans un état de faible alimentation, le framework appelle le IPowerPolicyCallbackWakeFromSx ::OnArmWakeFromSx fonction de rappel avant que l’appareil ne passe à un état de faible alimentation.
Valeur de retour
AssignSxWakeSettings retourne S_OK si l’opération réussit. Sinon, la méthode peut retourner l’une des valeurs suivantes :
Retourner le code | Description |
---|---|
|
L’appelant a spécifié une valeur non valide pour un paramètre d’entrée. |
|
Le pilote appelant n’est pas le propriétaire de la stratégie d’alimentation de l’appareil. |
|
Le paramètre DxState spécifie un état d’alimentation d’appareil non valide, ou le pilote bus indique que l’appareil ne peut pas déclencher un signal de veille, |
Cette méthode peut retourner l’une des autres valeurs que Winerror.h contient.
Remarques
La première fois qu’un pilote appelle AssignSxWakeSettings, les actions suivantes se produisent :
- L’infrastructure stocke les valeurs des paramètres.
- Si le paramètre UserControlOfWakeSettings est défini sur WakeAllowUserControl et si le paramètre Activé est défini sur WdfUseDefault, l’infrastructure lit le Registre pour déterminer si l’utilisateur a activé le réveil du système.
- Stocke la valeur du paramètre UserControlOfWakeSettings.
- Recherche un paramètre utilisateur dans le Registre si la valeur du paramètre Enabled est WdfUseDefault.
- La valeur ne peut pas être PowerDeviceD0.
- Si vous spécifiez DevicePowerMaximum, l’infrastructure utilise la valeur que le pilote en mode noyau du bus de l’appareil fourni dans le DeviceWake membre de sa structure de WDF_DEVICE_POWER_CAPABILITIES.
- Vous ne pouvez pas spécifier un état d’alimentation d’appareil inférieur à l’état d’alimentation de l’appareil dans la DeviceWake membre de la structure WDF_DEVICE_POWER_CAPABILITIES du pilote de bus en mode noyau. (En d’autres termes, si la valeur de deviceWake du pilote de bus est PowerDeviceD2, la valeur DxState du pilote de fonction ne peut pas être PowerDeviceD3.)
Pour plus d’informations sur la prise en charge des fonctionnalités de mise en éveil d’un appareil, consultez Prise en charge des Wake-Up système dans les pilotes basés sur UMDF.
L’exemple de code suivant obtient l’interface IWDFDevice2, puis appelle AssignSxWakeSettings.
IWDFDevice2 *pIWDFDevice2 = NULL;
HRESULT hr;
//
// Get a pointer to the IWDFDevice2 interface.
//
hr = pIWDFDevice->QueryInterface(__uuidof(IWDFDevice2),
(void**) &pIWDFDevice2);
if (SUCCEEDED(hr))
{
hr = pIWDFDevice2->AssignSxWakeSettings(PowerDeviceMaximum,
WakeAllowUserControl,
WdfUseDefault);
}
...
SAFE_RELEASE(pIWDFDevice2);
Exigences
Exigence | Valeur |
---|---|
fin du support | Indisponible dans UMDF 2.0 et versions ultérieures. |
plateforme cible | Bureau |
version minimale de UMDF | 1.9 |
d’en-tête | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |