Compartilhar via


Método IWDFDevice3::AssignS0IdleSettingsEx (wudfddi.h)

[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Os drivers universais do Windows devem usar o UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]

O método AssignS0IdleSettingsEx fornece informações fornecidas pelo driver que a estrutura usa quando um dispositivo está ocioso e o sistema está em seu estado de trabalho (S0).

Sintaxe

HRESULT AssignS0IdleSettingsEx(
  [in] PWUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS IdleSettings
);

Parâmetros

[in] IdleSettings

Um ponteiro para uma estrutura WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS que foi inicializada por uma chamada para a macro WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS_INIT .

Retornar valor

O método retornará S_OK se a operação for bem-sucedida. Caso contrário, esse método retornará um dos códigos de erro definidos em Winerror.h.

Comentários

Um driver pode chamar AssignS0IdleSettingsEx a qualquer momento depois que o driver chamar IWDFDriver::CreateDevice. Antes de chamar IWDFDriver::CreateDevice, o driver deve chamar IWDFDeviceInitialize::SetPowerPolicyOwnership com o parâmetro fTrue definido como TRUE. Para obter um exemplo dessa sequência de chamadas, consulte IWDFDriver::CreateDevice.

Se o driver chamar AssignS0IdleSettingsEx mais de uma vez, siga as regras descritas na seção Comentários de AssignS0IdleSettings.

Para obter mais informações sobre a desligar ociosa, consulte Suporte a Power-Down ociosas em drivers baseados em UMDF.

Exemplos

O exemplo de código a seguir inicializa uma estrutura de WUDF_DEVICE_POWER_POLICY_IDLE_SETTINGS e define um valor de tempo limite ocioso de 10 segundos. Em seguida, o exemplo obtém a interface IWDFDevice3 e chama 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
Fim do suporte Indisponível no UMDF 2.0 e posterior.
Plataforma de Destino Área de Trabalho
Versão mínima do UMDF 1.11
Cabeçalho wudfddi.h
DLL WUDFx.dll

Confira também

IWDFDevice2::AssignS0IdleSettings

IWDFDevice3

WdfDeviceAssignS0IdleSettings