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

Consulte también

IWDFDevice2::AssignS0IdleSettings

IWDFDevice3

WdfDeviceAssignS0IdleSettings