Método IWDFDevice2::AssignSxWakeSettings (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 AssignSxWakeSettings fornece informações fornecidas pelo driver sobre a capacidade de um dispositivo disparar um sinal de ativação enquanto o dispositivo e o sistema estão em um estado de baixa potência.
Sintaxe
HRESULT AssignSxWakeSettings(
[in] DEVICE_POWER_STATE DxState,
[in] WDF_POWER_POLICY_SX_WAKE_USER_CONTROL UserControlOfWakeSettings,
[in] WDF_TRI_STATE Enabled
);
Parâmetros
[in] DxState
Um enumerador do tipo DEVICE_POWER_STATE que identifica o estado de energia do dispositivo baixo que o dispositivo inserirá quando o estado de energia do sistema cair para um estado de baixa potência acordável. O valor de DxState não pode ser PowerDeviceD0. DEVICE_POWER_STATE valores são definidos em wdm.h.
[in] UserControlOfWakeSettings
Um enumerador do tipo WDF_POWER_POLICY_SX_WAKE_USER_CONTROL que indica se os usuários têm a capacidade de modificar as configurações de ativação do dispositivo.
[in] Enabled
Um enumerador do tipo WDF_TRI_STATE que indica se o dispositivo pode ativar o sistema (ou seja, restaurar o sistema para S0) quando o sistema estiver em um estado de baixa potência. Esse membro pode ter um dos seguintes valores:
WdfTrue – Acordar o sistema está habilitado.
WdfFalse – Acordar o sistema está desabilitado.
WdfUseDefault - Acordar o sistema é inicialmente habilitado por padrão; mas se o membro UserControlOfWakeSettings estiver definido como WakeAllowUserControl, a configuração do usuário ou o arquivo INF do driver substituirá o valor inicial.
Se o sistema estiver habilitado e o sistema estiver prestes a entrar em um estado de baixa potência, a estrutura chamará a função de retorno de chamada IPowerPolicyCallbackWakeFromSx::OnArmWakeFromSx do driver antes que o dispositivo entre em um estado de baixa potência.
Retornar valor
AssignSxWakeSettings retorna S_OK se a operação for bem-sucedida. Caso contrário, o método poderá retornar um dos seguintes valores:
Código de retorno | Descrição |
---|---|
|
O chamador especificou um valor inválido para um parâmetro de entrada. |
|
O driver de chamada não é o proprietário da política de energia do dispositivo. |
|
O parâmetro DxState especifica um estado de energia de dispositivo inválido ou o driver de barramento indica que o dispositivo não pode disparar um sinal de ativação, |
Esse método pode retornar um dos outros valores que Winerror.h contém.
Comentários
Na primeira vez que um driver chama AssignSxWakeSettings, as seguintes ações ocorrem:
- A estrutura armazena os valores de parâmetro.
- Se o parâmetro UserControlOfWakeSettings estiver definido como WakeAllowUserControl e se o parâmetro Enabled estiver definido como WdfUseDefault, a estrutura lerá o Registro para descobrir se o usuário habilitou a ativação do sistema.
- Armazena o valor do parâmetro UserControlOfWakeSettings .
- Procura uma configuração de usuário no registro, se o valor do parâmetro Enabled for WdfUseDefault.
- O valor não pode ser PowerDeviceD0.
- Se você especificar DevicePowerMaximum, a estrutura usará o valor que o driver do modo kernel para o barramento do dispositivo fornecido no membro DeviceWake de sua estrutura WDF_DEVICE_POWER_CAPABILITIES .
- Não é possível especificar um estado de energia do dispositivo inferior ao estado de energia do dispositivo no membro DeviceWake da estrutura de WDF_DEVICE_POWER_CAPABILITIES do driver de barramento do modo kernel. (Em outras palavras, se o valor DeviceWake do driver de barramento for PowerDeviceD2, o valor DxState do driver de função não poderá ser PowerDeviceD3.)
Para obter mais informações sobre como dar suporte aos recursos de ativação de um dispositivo, consulte Suporte ao sistema Wake-Up em drivers baseados em UMDF.
O exemplo de código a seguir obtém a interface IWDFDevice2 e chama AssignSxWakeSettings.
IWDFDevice2 *pIWDFDevice2 = NULL;
HRESULT hr;
//
// Get a pointer to the IWDFDevice2 interface.
//
hr = pIWDFDevice->QueryInterface(__uuidof(IWDFDevice2),
(void**) &pIWDFDevice2);
if (SUCCEEDED(hr))
{
hr = pIWDFDevice2->AssignSxWakeSettings(PowerDeviceMaximum,
WakeAllowUserControl,
WdfUseDefault);
}
...
SAFE_RELEASE(pIWDFDevice2);
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,9 |
Cabeçalho | wudfddi.h (inclua Wudfddi.h) |
DLL | WUDFx.dll |