Partager via


IWDFDevice3 ::AssignS0IdleSettingsEx, 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 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 travail (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 qui a été initialisée par un appel à la macro WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT.

Valeur de retour

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 appelle 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 Notes de AssignS0IdleSettings.

Pour plus d’informations sur la panne d’inactivité, consultez Prise en charge des Power-Down inactifs dans les pilotes basés sur 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);
   

Exigences

Exigence Valeur
fin du support Indisponible dans UMDF 2.0 et versions ultérieures.
plateforme cible Bureau
version minimale de UMDF 1.11
d’en-tête wudfddi.h
DLL WUDFx.dll

Voir aussi

IWDFDevice2 ::AssignS0IdleSettings

IWDFDevice3

WdfDeviceAssignS0IdleSettings