Método IWDFDevice2::AssignSxWakeSettings (wudfddi.h)
[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción con UMDF.
El método AssignSxWakeSettings proporciona información proporcionada por el controlador sobre la capacidad de un dispositivo para desencadenar una señal de reactivación mientras el dispositivo y el sistema están en un estado de bajo consumo.
Sintaxis
HRESULT AssignSxWakeSettings(
[in] DEVICE_POWER_STATE DxState,
[in] WDF_POWER_POLICY_SX_WAKE_USER_CONTROL UserControlOfWakeSettings,
[in] WDF_TRI_STATE Enabled
);
Parámetros
[in] DxState
Enumerador con tipo DEVICE_POWER_STATE que identifica el estado de baja potencia del dispositivo que el dispositivo entrará cuando el estado de alimentación del sistema caiga en un estado de baja potencia reactivable. El valor de DxState no puede ser PowerDeviceD0. DEVICE_POWER_STATE valores se definen en wdm.h.
[in] UserControlOfWakeSettings
Enumerador con tipo WDF_POWER_POLICY_SX_WAKE_USER_CONTROL que indica si los usuarios tienen la capacidad de modificar la configuración de reactivación del dispositivo.
[in] Enabled
Enumerador con tipo WDF_TRI_STATE que indica si el dispositivo puede reactivar el sistema (es decir, restaurar el sistema a S0) cuando el sistema está en estado de baja potencia. Este miembro puede tener uno de los siguientes valores:
WdfTrue : activar el sistema está habilitado.
WdfFalse : la reactivación del sistema está deshabilitada.
WdfUseDefault : la reactivación del sistema está habilitada inicialmente de forma predeterminada; pero si el miembro UserControlOfWakeSettings está establecido en WakeAllowUserControl, la configuración del usuario o el archivo INF del controlador invalida el valor inicial.
Si la reactivación del sistema está habilitada y el sistema está a punto de entrar en un estado de baja potencia, el marco llama a la función de devolución de llamada IPowerPolicyCallbackWakeFromSx::OnArmWakeFromSx antes de que el dispositivo entre en un estado de baja potencia.
Valor devuelto
AssignSxWakeSettings devuelve S_OK si la operación se realiza correctamente. De lo contrario, el método podría devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
El autor de la llamada especificó un valor no válido para un parámetro de entrada. |
|
El controlador de llamada no es el propietario de la directiva de energía del dispositivo. |
|
El parámetro DxState especifica un estado de alimentación de dispositivo no válido o el controlador de bus indica que el dispositivo no puede desencadenar una señal de reactivación, |
Este método puede devolver uno de los otros valores que contiene Winerror.h.
Comentarios
La primera vez que un controlador llama a AssignSxWakeSettings, se producen las siguientes acciones:
- El marco almacena los valores de parámetro.
- Si el parámetro UserControlOfWakeSettings se establece en WakeAllowUserControl y si el parámetro Enabled está establecido en WdfUseDefault, el marco lee el registro para averiguar si el usuario ha habilitado la activación del sistema.
- Almacena el valor del parámetro UserControlOfWakeSettings .
- Busca una configuración de usuario en el Registro, si el valor del parámetro Enabled es WdfUseDefault.
- El valor no puede ser PowerDeviceD0.
- Si especifica DevicePowerMaximum, el marco usa el valor que el controlador en modo kernel para el bus del dispositivo proporcionado en el miembro DeviceWake de su estructura de WDF_DEVICE_POWER_CAPABILITIES .
- No se puede especificar un estado de alimentación del dispositivo inferior al estado de alimentación del dispositivo en el miembro DeviceWake de la estructura WDF_DEVICE_POWER_CAPABILITIES del controlador de bus en modo kernel. (En otras palabras, si el valor DeviceWake del controlador de bus es PowerDeviceD2, el valor dxState del controlador de función no puede ser PowerDeviceD3).
Para obtener más información sobre cómo admitir las funcionalidades de reactivación de un dispositivo, consulte Compatibilidad del sistema Wake-Up en controladores basados en UMDF.
En el ejemplo de código siguiente se obtiene la interfaz IWDFDevice2 y, a continuación, se llama a 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);
Requisitos
Requisito | Value |
---|---|
Finalización del soporte técnico | No disponible en UMDF 2.0 y versiones posteriores. |
Plataforma de destino | Escritorio |
Versión mínima de UMDF | 1,9 |
Encabezado | wudfddi.h (incluya Wudfddi.h) |
Archivo DLL | WUDFx.dll |