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 |