Compartir a través de


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

Consulte también

IWDFDevice2::AssignS0IdleSettings

IWDFDevice3 de

WdfDeviceAssignS0IdleSettings