Método IWDFDevice3::AssignS0IdleSettingsEx (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 AssignS0IdleSettingsEx proporciona información proporcionada por el controlador que el marco usa cuando un dispositivo está inactivo y el sistema está en estado de funcionamiento (S0).
Sintaxis
HRESULT AssignS0IdleSettingsEx(
[in] PWUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS IdleSettings
);
Parámetros
[in] IdleSettings
Puntero a una estructura WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS inicializada por una llamada a la macro WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT .
Valor devuelto
El método devuelve S_OK si la operación se realiza correctamente. De lo contrario, este método devuelve uno de los códigos de error definidos en Winerror.h.
Comentarios
Un controlador puede llamar a AssignS0IdleSettingsEx en cualquier momento después de que el controlador llame a IWDFDriver::CreateDevice. Antes de llamar a IWDFDriver::CreateDevice, el controlador debe llamar a IWDFDeviceInitialize::SetPowerPolicyOwnership con el parámetro fTrue establecido en TRUE. Para obtener un ejemplo de esta secuencia de llamadas, vea IWDFDriver::CreateDevice.
Si el controlador llama a AssignS0IdleSettingsEx más de una vez, siga las reglas descritas en la sección Comentarios de AssignS0IdleSettings.
Para obtener más información sobre el apagado inactivo, consulte Compatibilidad con el Power-Down inactivo en controladores basados en UMDF.
Ejemplos
En el ejemplo de código siguiente se inicializa una estructura de WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS y se establece un valor de tiempo de espera de inactividad de 10 segundos. A continuación, el ejemplo obtiene la interfaz IWDFDevice3 y llama a 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);
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.11 |
Encabezado | wudfddi.h |
Archivo DLL | WUDFx.dll |