Condividi tramite


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

Vedi anche

IWDFDevice2::AssignS0IdleSettings

IWDFDevice3

WdfDeviceAssignS0IdleSettings