estrutura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS (wdfdevice.h)
[Aplica-se a KMDF e UMDF]
A estrutura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS contém informações fornecidas pelo driver sobre a capacidade de um dispositivo de ativar a si mesmo e o sistema, quando ambos estão em um estado de baixa potência.
Sintaxe
typedef struct _WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS {
ULONG Size;
DEVICE_POWER_STATE DxState;
WDF_POWER_POLICY_SX_WAKE_USER_CONTROL UserControlOfWakeSettings;
WDF_TRI_STATE Enabled;
BOOLEAN ArmForWakeIfChildrenAreArmedForWake;
BOOLEAN IndicateChildWakeOnParentWake;
} WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS, *PWDF_DEVICE_POWER_POLICY_WAKE_SETTINGS;
Membros
Size
O tamanho, em bytes, dessa estrutura.
DxState
Um enumerador tipo DEVICE_POWER_STATEque identifica o estado de energia do dispositivo de baixa que o dispositivo entrará quando o estado de energia do sistema for removido para um estado de baixa potência acionável. O valor de DxState não pode ser powerDeviceD0. DEVICE_POWER_STATE valores são definidos em wdm.h.
UserControlOfWakeSettings
Um enumerador tipo WDF_POWER_POLICY_SX_WAKE_USER_CONTROLque indica se os usuários têm a capacidade de modificar as configurações de ativação do dispositivo.
Enabled
Um enumerador tipo WDF_TRI_STATEque 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á o driver EvtDeviceArmWakeFromSx ou EvtDeviceArmWakeFromSxWithReason função de retorno de chamada antes que o dispositivo insira um estado de baixa potência.
ArmForWakeIfChildrenAreArmedForWake
Um valor booliano que, se definido como VERDADEIRO, indica que a capacidade de um dispositivo pai de ativar a si mesmo e o sistema deve ser habilitado quando essa capacidade é habilitada para os dispositivos filho do dispositivo. Para obter mais informações, consulte a seção Comentários a seguir. Esse membro está disponível na versão 1.7 e versões posteriores do KMDF.
IndicateChildWakeOnParentWake
Um valor booliano que, se definido como verdadeiro, indica que a estrutura fornecerá o status de ativação para dispositivos filho se um dispositivo pai detectar um sinal de ativação. Para obter mais informações, consulte a seção Comentários a seguir. Esse membro está disponível na versão 1.7 e versões posteriores do KMDF.
Observações
A estrutura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS é usada como entrada para WdfDeviceAssignSxWakeSettings.
Para inicializar sua estrutura de WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS, o driver deve chamar WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS_INIT.
Na primeira vez que um driver chama WdfDeviceAssignSxWakeSettings, as seguintes ações ocorrem:
- A estrutura armazena os valores de todos os membros da estrutura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS.
- Se o membro UserControlOfWakeSettings estiver definido como WakeAllowUserControl e se o membro habilitado para 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 membro UserControlOfWakeSettings.
- Procura uma configuração de usuário no registro, se o valor do membro do Enabled for WdfUseDefault.
- O valor não pode ser PowerDeviceD0.
- Se você especificar PowerDeviceMaximum, a estrutura usará o valor que o driver do barramento do dispositivo forneceu no DeviceWake membro 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 DeviceWake membro da estrutura de WDF_DEVICE_POWER_CAPABILITIES do motorista do ônibus. (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.)
Se o dispositivo que a estrutura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS descreve for um dispositivo pai, o driver do dispositivo pai poderá usar os membros ArmForWakeIfChildrenAreArmedForWake e IndicateChildWakeOnParentWake membros da seguinte maneira:
-
Se o driver definir o membro ArmForWakeIfChildrenAreArmedForWake para TRUE, a estrutura chamará o do driver EvtDeviceArmWakeFromSx ou EvtDeviceArmWakeFromSxWithReason função de retorno de chamada quando a capacidade de ativação de um dispositivo filho estiver habilitada, mesmo que a capacidade de ativação do dispositivo pai não esteja habilitada.
Para reduzir o consumo de energia, talvez você não queira habilitar a capacidade de ativação do dispositivo, a menos que um dispositivo filho que também dê suporte a uma capacidade de ativação esteja conectado. Se o driver definir o membro ArmForWakeIfChildrenAreArmedForWake como TRUE, os valores do membro habilitado terão os seguintes significados:
- Se Habilitado for WdfFalse, a estrutura habilitará a capacidade de ativação do driver somente se a capacidade de ativação de um dispositivo filho estiver habilitada.
- Se Habilitado for WdfTrue, a estrutura sempre habilitará a capacidade de ativação do driver, independentemente de seu dispositivo ter dispositivos filho habilitados para ativação ou não.
- Se Habilitado for WdfUseDefault e UserControlOfWakeSettingsWakeAllowUserControl, os usuários poderão controlar se o dispositivo está sempre habilitado para ativação ou se está habilitado para ativação somente quando o dispositivo tem dispositivos filho habilitados para ativação.
- Se o driver definir o membro IndicateChildWakeOnParentWake como TRUE, a estrutura chamará a função de retorno de chamada EvtDeviceWakeFromSxTriggered no driver do dispositivo pai e no driver de cada dispositivo filho habilitado para ativação. Se o driver definir esse membro como FALSE, a estrutura chamará o EvtDeviceWakeFromSxTriggered função de retorno de chamada somente no driver do dispositivo pai. O driver deve definir IndicateChildWakeOnParentWake para VERDADEIRO se os drivers dos filhos do dispositivo precisarem examinar o hardware para determinar por que o sistema foi despertado.
Requisitos
Requisito | Valor |
---|---|
versão mínima do KMDF | 1.0 |
versão mínima do UMDF | 2.0 |
cabeçalho | wdfdevice.h (inclua Wdf.h) |
Consulte também
EvtDeviceArmWakeFromSxWithReason
WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS_INIT