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 |