Metodo IWDFDevice3::AssignS0IdleSettingsEx (wudfddi.h)
[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre info, vedi Introduzione con UMDF.]
Il metodo AssignS0IdleSettingsEx fornisce informazioni fornite dal driver usate dal framework quando un dispositivo è inattiva e il sistema si trova nello stato funzionante (S0).
Sintassi
HRESULT AssignS0IdleSettingsEx(
[in] PWUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS IdleSettings
);
Parametri
[in] IdleSettings
Puntatore a una struttura WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS inizializzata da una chiamata alla macro WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT .
Valore restituito
Il metodo restituisce S_OK se l'operazione ha esito positivo. In caso contrario, questo metodo restituisce uno dei codici di errore definiti in Winerror.h.
Commenti
Un driver può chiamare AssignS0IdleSettingsEx in qualsiasi momento dopo che il driver chiama IWDFDriver::CreateDevice. Prima di chiamare IWDFDriver::CreateDevice, il driver deve chiamare IWDFDeviceInitialize::SetPowerPolicyOwnership con il parametro fTrue impostato su TRUE. Per un esempio di questa sequenza di chiamate, vedere IWDFDriver::CreateDevice.
Se il driver chiama AssignS0IdleSettingsEx più volte, seguire le regole descritte nella sezione Osservazioni di AssignS0IdleSettings.
Per altre informazioni sul risparmio di energia inattivo, vedere Supporto delle Power-Down inattive nei driver basati su UMDF.
Esempio
Nell'esempio di codice seguente viene inizializzata una struttura WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS e viene impostato un valore di timeout di inattività di 10 secondi. L'esempio ottiene quindi l'interfaccia IWDFDevice3 e chiama 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);
Requisiti
Requisito | Valore |
---|---|
Fine del supporto | Non disponibile in UMDF 2.0 e versioni successive. |
Piattaforma di destinazione | Desktop |
Versione UMDF minima | 1.11 |
Intestazione | wudfddi.h |
DLL | WUDFx.dll |