IWDFDevice3 ::AssignS0IdleSettingsEx, méthode (wudfddi.h)

[Avertissement : UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.]

La méthode AssignS0IdleSettingsEx fournit des informations fournies par le pilote que l’infrastructure utilise lorsqu’un appareil est inactif et que le système est dans son état de fonctionnement (S0).

Syntaxe

HRESULT AssignS0IdleSettingsEx(
  [in] PWUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS IdleSettings
);

Paramètres

[in] IdleSettings

Pointeur vers une structure WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS initialisée par un appel à la macro WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT .

Valeur retournée

La méthode retourne S_OK si l’opération réussit. Sinon, cette méthode retourne l’un des codes d’erreur définis dans Winerror.h.

Remarques

Un pilote peut appeler AssignS0IdleSettingsEx à tout moment après que le pilote a appelé IWDFDriver ::CreateDevice. Avant d’appeler IWDFDriver ::CreateDevice, le pilote doit appeler IWDFDeviceInitialize ::SetPowerPolicyOwnership avec le paramètre fTrue défini sur TRUE. Pour obtenir un exemple de cette séquence d’appels, consultez IWDFDriver ::CreateDevice.

Si votre pilote appelle AssignS0IdleSettingsEx plusieurs fois, suivez les règles décrites dans la section Remarques de AssignS0IdleSettings.

Pour plus d’informations sur la mise hors tension inactif, consultez Prise en charge des Power-Down inactifs dans les pilotes UMDF.

Exemples

L’exemple de code suivant initialise une structure WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS et définit une valeur de délai d’inactivité de 10 secondes. L’exemple obtient ensuite l’interface IWDFDevice3 et appelle AssignS0IdleSettingsEx.

IWDFDevice3 *pIWDFDevice3 = NULL;
HRESULT hr;

WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS  idleSettings;

WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT(
                                           &idleSettings,
                                           IdleCanWakeFromS0
                                           );
idleSettings.IdleTimeout = 10000;

//
// Get a pointer to the IWDFDevice3 interface.
//

hr = pIWDFDevice->QueryInterface(__uuidof(IWDFDevice3),
                                 (void**) &pIWDFDevice3);
if (SUCCEEDED(hr)) 
   {
    
   hr = pIWDFDevice3->AssignS0IdleSettingsEx(&idleSettings
                                            );
   }
...

SAFE_RELEASE(pIWDFDevice3);
   

Configuration requise

Condition requise Valeur
Fin de la prise en charge Non disponible dans UMDF 2.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
Version UMDF minimale 1.11
En-tête wudfddi.h
DLL WUDFx.dll

Voir aussi

IWDFDevice2 ::AssignS0IdleSettings

IWDFDevice3

WdfDeviceAssignS0IdleSettings