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 nuevos controladores UMDF deben escribirse mediante 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 a UMDF.]
El método AssignS0IdleSettingsEx proporciona información proporcionada por el controlador que usa el marco cuando un dispositivo está inactivo y el sistema está en su estado de trabajo (S0).
Sintaxis
HRESULT AssignS0IdleSettingsEx(
[in] PWUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS IdleSettings
);
Parámetros
[in] IdleSettings
Puntero a una estructura de 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.
Observaciones
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 admitir Power-Down inactivos 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 de 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 | Valor |
---|---|
fin del soporte técnico | No disponible en UMDF 2.0 y versiones posteriores. |
de la plataforma de destino de | Escritorio |
versión mínima de UMDF | 1.11 |
encabezado de | wudfddi.h |
DLL de | WUDFx.dll |