Condividi tramite


Metodo IWDFDevice2::AssignSxWakeSettings (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 AssignSxWakeSettings fornisce informazioni fornite dal driver sulla capacità di un dispositivo di attivare un segnale di riattivazione mentre il dispositivo e il sistema si trovano in uno stato a basso consumo.

Sintassi

HRESULT AssignSxWakeSettings(
  [in] DEVICE_POWER_STATE                    DxState,
  [in] WDF_POWER_POLICY_SX_WAKE_USER_CONTROL UserControlOfWakeSettings,
  [in] WDF_TRI_STATE                         Enabled
);

Parametri

[in] DxState

Enumeratore tipizzato DEVICE_POWER_STATE che identifica lo stato di alimentazione del dispositivo basso che il dispositivo immette quando lo stato di alimentazione del sistema scende a uno stato di bassa potenza riattivabile. Il valore di DxState non può essere PowerDeviceD0. DEVICE_POWER_STATE valori sono definiti in wdm.h.

[in] UserControlOfWakeSettings

Enumeratore tipizzato WDF_POWER_POLICY_SX_WAKE_USER_CONTROL che indica se gli utenti hanno la possibilità di modificare le impostazioni di riattivazione del dispositivo.

[in] Enabled

Enumeratore tipizzato WDF_TRI_STATE che indica se il dispositivo può riattivare il sistema (ovvero ripristinare il sistema in S0) quando il sistema è in uno stato a basso consumo. Questo membro può avere uno dei valori seguenti:

WdfTrue : riattivare il sistema è abilitato.

WdfFalse : riattivare il sistema è disabilitato.

WdfUseDefault - Svegliare inizialmente il sistema è abilitato per impostazione predefinita; ma se il membro UserControlOfWakeSettings è impostato su WakeAllowUserControl, l'impostazione dell'utente o il file INF del driver esegue l'override del valore iniziale.

Se il sistema viene attivato e il sistema sta per entrare in uno stato a basso consumo, il framework chiama la funzione di callback IPowerPolicyCallbackWakeFromSx::OnArmWakeFromSx prima che il dispositivo entri in uno stato a basso consumo.

Valore restituito

AssignSxWakeSettings restituisce S_OK se l'operazione ha esito positivo. In caso contrario, il metodo potrebbe restituire uno dei valori seguenti:

Codice restituito Descrizione
E_INVALIDARG
Il chiamante ha specificato un valore non valido per un parametro di input.
HRESULT_FROM_NT(STATUS_INVALID_DEVICE_REQUEST)
Il driver chiamante non è il proprietario dei criteri di alimentazione del dispositivo.
HRESULT_FROM_NT(STATUS_POWER_STATE_INVALID)
Il parametro DxState specifica uno stato di alimentazione del dispositivo non valido o il driver del bus indica che il dispositivo non può attivare un segnale di riattivazione,
 

Questo metodo potrebbe restituire uno degli altri valori contenuti da Winerror.h.

Commenti

La prima volta che un driver chiama AssignSxWakeSettings, si verificano le azioni seguenti:

  • Il framework archivia i valori dei parametri.
  • Se il parametro UserControlOfWakeSettings è impostato su WakeAllowUserControl e se il parametro Enabled è impostato su WdfUseDefault, il framework legge il Registro di sistema per scoprire se l'utente ha abilitato la riattivazione del sistema.
Durante le chiamate successive a AssignSxWakeSettings, il framework non archivia il valore del parametro UserControlOfWakeSettings . In altre parole, il framework esegue i passaggi seguenti la prima volta che il driver chiama AssignSxWakeSettings ma non durante le chiamate successive:
  • Archivia il valore del parametro UserControlOfWakeSettings .
  • Cerca un'impostazione utente nel Registro di sistema, se il valore del parametro Enabled è WdfUseDefault.
Le regole seguenti si applicano al valore specificato per il parametro DxState :
  • Il valore non può essere PowerDeviceD0.
  • Se si specifica DevicePowerMaximum, il framework usa il valore fornito dal driver in modalità kernel per il bus del dispositivo nel membro DeviceWake della relativa struttura WDF_DEVICE_POWER_CAPABILITIES .
  • Non è possibile specificare uno stato di alimentazione del dispositivo inferiore allo stato di alimentazione del dispositivo nel membro DeviceWake della struttura del driver del bus in modalità kernel WDF_DEVICE_POWER_CAPABILITIES. In altre parole, se il valore DeviceWake del driver del bus è PowerDeviceD2, il valore DxState del driver di funzione non può essere PowerDeviceD3.
Per informazioni sulle voci del Registro di sistema che controllano le funzionalità di riattivazione di un dispositivo, vedere Controllo utente del comportamento di inattività del dispositivo e riattivazione in UMDF.

Per altre informazioni sul supporto delle funzionalità di riattivazione di un dispositivo, vedere Supporto dei Wake-Up di sistema nei driver basati su UMDF.

L'esempio di codice seguente ottiene l'interfaccia IWDFDevice2 e quindi chiama AssignSxWakeSettings.

    IWDFDevice2 *pIWDFDevice2 = NULL;
    HRESULT hr;

    //
    // Get a pointer to the IWDFDevice2 interface.
    //
    hr = pIWDFDevice->QueryInterface(__uuidof(IWDFDevice2),
                                     (void**) &pIWDFDevice2);
    if (SUCCEEDED(hr)) 
    {
        hr = pIWDFDevice2->AssignSxWakeSettings(PowerDeviceMaximum,
                                                WakeAllowUserControl,
                                                WdfUseDefault);
    }
...
    SAFE_RELEASE(pIWDFDevice2);

Requisiti

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
Piattaforma di destinazione Desktop
Versione UMDF minima 1,9
Intestazione wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Vedi anche

IWDFDevice2

IWDFDevice2::AssignS0IdleSettings