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 |
---|---|
|
Il chiamante ha specificato un valore non valido per un parametro di input. |
|
Il driver chiamante non è il proprietario dei criteri di alimentazione del dispositivo. |
|
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.
- Archivia il valore del parametro UserControlOfWakeSettings .
- Cerca un'impostazione utente nel Registro di sistema, se il valore del parametro Enabled è WdfUseDefault.
- 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 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 |