Referência de gerenciamento de energia do dispositivo
Os drivers podem dividir o hardware do dispositivo em vários componentes lógicos para permitir o gerenciamento de energia refinado. Um componente tem um conjunto de estados de energia que podem ser gerenciados independentemente dos estados de energia de outros componentes no mesmo dispositivo. No estado F0, o componente está totalmente ativado. O componente pode dar suporte a estados adicionais de baixo consumo de energia F1, F2 e assim por diante.
O proprietário da política de energia de um dispositivo é normalmente o driver de função do dispositivo. Para habilitar o gerenciamento de energia no nível do componente, esse driver registra o dispositivo com a estrutura de gerenciamento de energia (PoFx). Ao registrar o dispositivo, o driver assume a responsabilidade de informar à PoFx quando um componente está sendo usado ativamente e quando o componente está ocioso. A PoFx faz escolhas inteligentes de estado ocioso para o dispositivo com base em informações sobre a atividade do componente, tolerância à latência, durações ociosas esperadas e requisitos de ativação. Ao controlar o uso de energia no nível do componente, a PoFx pode reduzir os requisitos de energia, preservando a capacidade de resposta do sistema. Para obter mais informações, consulte Gerenciamento de energia no nível do componente.
Rotinas de gerenciamento de energia do dispositivo
Essas rotinas são implementadas pela estrutura de gerenciamento de energia (PoFx) para permitir o gerenciamento de energia do dispositivo. Essas rotinas são chamadas pelo driver que é o proprietário da política de energia (PPO) de um dispositivo. Normalmente, o driver de função de um dispositivo é a PPO desse dispositivo.
Tópico | Descrição |
---|---|
PoFxActivateComponent | A rotina PoFxActivateComponent incrementa a contagem de referência de ativação no componente especificado. |
PoFxCompleteDevicePowerNotRequired | A rotina PoFxCompleteDevicePowerNotRequired notifica a estrutura de gerenciamento de energia (PoFx) de que o driver de chamada concluiu sua resposta a uma chamada para a rotina de retorno de chamada DevicePowerNotRequiredCallback do driver. |
PoFxCompleteIdleCondition | A rotina PoFxCompleteIdleCondition informa à estrutura de gerenciamento de energia (PoFx) que o componente especificado concluiu uma alteração pendente na condição ociosa. |
PoFxCompleteIdleState | A rotina PoFxCompleteIdleState informa à estrutura de gerenciamento de energia (PoFx) que o componente especificado concluiu uma alteração pendente para um estado Fx. |
PoFxIdleComponent | A rotina PoFxIdleComponent diminui a contagem de referência de ativação no componente especificado. |
PoFxIssueComponentPerfStateChange | A rotina PoFxIssueComponentPerfStateChange envia uma solicitação para colocar um componente de dispositivo em um estado de desempenho específico. |
PoFxIssueComponentPerfStateChangeMultiple | A rotina PoFxIssueComponentPerfStateChangeMultiple envia uma solicitação para alterar os estados de desempenho em vários conjuntos de estados de desempenho simultaneamente para um componente de dispositivo. |
PoFxNotifySurprisePowerOn | A rotina PoFxNotifySurprisePowerOn informa à estrutura de gerenciamento de energia (PoFx) que um dispositivo foi ligado como efeito colateral do fornecimento de energia para algum outro dispositivo. |
PoFxPowerControl | A rotina PoFxPowerControl envia uma solicitação de controle de energia para a estrutura de gerenciamento de energia (PoFx). |
PoFxQueryCurrentComponentPerfState | A rotina PoFxQueryCurrentComponentPerfState recupera o estado de desempenho ativo no conjunto de estados de desempenho de um componente. |
PoFxRegisterComponentPerfStates | A rotina PoFxRegisterComponentPerfStates registra um componente de dispositivo para gerenciamento de estado de desempenho pela estrutura de gerenciamento de energia (PoFx). |
PoFxRegisterDevice | A rotina PoFxRegisterDevice registra um dispositivo com a estrutura de gerenciamento de energia (PoFx). |
PoFxReportDevicePoweredOn | A rotina PoFxReportDevicePoweredOn informa à estrutura de gerenciamento de energia (PoFx) que o dispositivo concluiu a transição solicitada para o estado de energia D0 (totalmente ligado). |
PoFxSetComponentLatency | A rotina PoFxSetComponentLatency especifica a latência máxima que pode ser tolerada na transição da condição ociosa para a condição ativa no componente especificado. |
PoFxSetComponentResidency | A rotina PoFxSetComponentResidency define o tempo estimado que um componente provavelmente permanecerá ocioso depois que entrar na condição ociosa. |
PoFxSetComponentWake | A rotina PoFxSetComponentWake indica se o driver arma o componente especificado para despertar sempre que o componente entra na condição ociosa. |
PoFxSetDeviceIdleTimeout | A rotina PoFxSetDeviceIdleTimeout especifica o intervalo de tempo mínimo desde quando o último componente do dispositivo entra na condição ociosa até quando a estrutura de gerenciamento de energia (PoFx) chama a rotina de retorno de chamada DevicePowerNotRequiredCallback do driver. |
PoFxStartDevicePowerManagement | A rotina PoFxStartDevicePowerManagement conclui o registro de um dispositivo com a estrutura de gerenciamento de energia (PoFx) e inicia o gerenciamento de energia do dispositivo. |
PoFxUnregisterDevice | A rotina PoFxUnregisterDevice remove o registro de um dispositivo da estrutura de gerenciamento de energia (PoFx). |
Retornos de chamada de gerenciamento de energia do dispositivo
Essas rotinas de retorno de chamada são exigidas pela estrutura de gerenciamento de energia (PoFx) para permitir o gerenciamento de energia do dispositivo. O driver que é o proprietário da política de energia do dispositivo implementa essas rotinas de retorno de chamada. A PoFx chama essas rotinas para consultar e configurar os estados de energia dos componentes no dispositivo.
Tópico | Descrição |
---|---|
ComponentActiveConditionCallback | A rotina de retorno de chamada ComponentActiveConditionCallback informa ao driver que o componente especificado concluiu uma transição da condição ociosa para a condição ativa. |
ComponentIdleConditionCallback | A rotina de retorno de chamada ComponentIdleConditionCallback informa ao driver que o componente especificado concluiu uma transição da condição ativa para a condição ociosa. |
ComponentIdleStateCallback | A rotina de retorno de chamada ComponentIdleStateCallback informa ao driver sobre uma alteração pendente no estado de energia Fx do componente especificado. |
ComponentPerfStateCallback | A rotina de retorno de chamada ComponentPerfStateCallback informa ao driver que sua solicitação para alterar o estado de desempenho de um componente está concluída. |
DevicePowerNotRequiredCallback | A rotina de retorno de chamada DevicePowerNotRequiredCallback informa ao driver que o dispositivo não precisa permanecer no estado de energia D0. |
DevicePowerRequiredCallback | A rotina de retorno de chamada DevicePowerRequiredCallback informa ao driver que o dispositivo deve entrar e permanecer no estado de energia D0. |
PowerControlCallback | A rotina de retorno de chamada PowerControlCallback executa uma operação de controle de energia solicitada pela estrutura de gerenciamento de energia (PoFx). |
Estruturas de gerenciamento de energia do dispositivo
A estrutura de gerenciamento de energia (PoFx) define essas estruturas para dar suporte ao gerenciamento de energia do dispositivo.
Tópico | Descrição |
---|---|
PO_FX_COMPONENT_V1 PO_FX_COMPONENT_V2 | A estrutura PO_FX_COMPONENT descreve os atributos de estado de potência de um componente em um dispositivo. |
PO_FX_COMPONENT_IDLE_STATE | A estrutura PO_FX_COMPONENT_IDLE_STATE especifica os atributos de um estado de energia Fx de um componente em um dispositivo. |
PO_FX_COMPONENT_PERF_INFO | A estrutura PO_FX_COMPONENT_PERF_INFO descreve todos os conjuntos de estados de desempenho de um único componente dentro de um dispositivo. |
PO_FX_COMPONENT_PERF_SET | A estrutura PO_FX_COMPONENT_PERF_SET representa um conjunto de estados de desempenho de um único componente dentro de um dispositivo. |
PO_FX_DEVICE_V1 PO_FX_DEVICE_V2PO_FX_DEVICE_V3 | A estrutura PO_FX_DEVICE descreve os atributos de energia de um dispositivo para a estrutura de gerenciamento de energia (PoFx). |
PO_FX_PERF_STATE | A estrutura PO_FX_PERF_STATE representa um estado de desempenho de um único componente dentro de um dispositivo. |
PO_FX_PERF_STATE_CHANGE | A estrutura PO_FX_PERF_STATE_CHANGE contém informações sobre uma alteração no estado de desempenho que está sendo solicitado chamando a rotina PoFxIssueComponentPerfStateChange ou PoFxIssueComponentPerfStateChangeMultiple. |
Enumerações de gerenciamento de energia do dispositivo
A estrutura de gerenciamento de energia (PoFx) define essas enumerações para dar suporte ao gerenciamento de energia do dispositivo.
Tópico | Descrição |
---|---|
PO_FX_PERF_STATE_TYPE | A enumeração PO_FX_PERF_STATE_TYPE contém valores que descrevem o tipo de estados de desempenho em uma PO_FX_COMPONENT_PERF_SET. |
PO_FX_PERF_STATE_UNIT | A enumeração PO_FX_PERF_STATE_UNIT contém valores que descrevem o tipo de unidade que é controlada pelos estados de desempenho em uma PO_FX_COMPONENT_PERF_SET. |
Constantes de gerenciamento de energia do dispositivo
Bits de sinalizador PO_FX_FLAG_XXX
As constantes PO_FX_FLAG_XXX são bits de sinalizador que indicam se uma solicitação para alterar a condição do componente é executada de forma síncrona ou assíncrona.
#define PO_FX_FLAG_BLOCKING 0x1
#define PO_FX_FLAG_ASYNC_ONLY 0x2
Constantes PO_FX_FLAG_XXX
Constante | Descrição |
---|---|
PO_FX_FLAG_BLOCKING | Faça a alteração de condição síncrona. Se esse sinalizador estiver definido, a rotina que solicita a alteração de condição não retornará o controle para o driver de chamada até que o hardware do componente conclua a transição para a nova condição. Esse sinalizador só poderá ser usado se o chamador estiver sendo executado no IRQL < DISPATCH_LEVEL. |
PO_FX_FLAG_ASYNC_ONLY | Faça a alteração de condição totalmente assíncrona. Se esse sinalizador estiver definido, a rotina de retorno de chamada do driver de chamada será chamada de um thread diferente do thread no qual a rotina que solicita a alteração de condição é chamada. Assim, a rotina que solicita a alteração de condição sempre retorna de forma assíncrona, sem aguardar a conclusão do retorno de chamada. |
Observações PO_FX_FLAG_XXX
O parâmetro de sinalizadores para as seguintes rotinas pode ser definido como uma constante PO_FX_FLAG_XXX:
- PoFxActivateComponent
- PoFxIdleComponent
- PoFxIssueComponentPerfStateChange
- PoFxIssueComponentPerfStateChangeMultiple
Os bits de sinalizador PO_FX_FLAG_BLOCKING e PO_FX_FLAG_ASYNC_ONLY são mutuamente exclusivos. O autor da chamada pode definir um ou outro bit de sinalizador no parâmetro de sinalizadores, mas não ambos os bits de sinalizador.
Requisitos PO_FX_FLAG_XXX
Versão | Cabeçalho |
---|---|
Com suporte a partir do Windows 8. | Wdm.h |
Bits de sinalizador PO_FX_FLAG_PERF_XXX
As constantes PO_FX_FLAG_PERF_XXX são bits de sinalizador que definem como a estrutura de gerenciamento de energia (PoFx) gerencia estados de desempenho de um componente de dispositivo.
#define PO_FX_FLAG_PERF_PEP_OPTIONAL 0x1
#define PO_FX_FLAG_PERF_QUERY_ON_F0 0x2
#define PO_FX_FLAG_PERF_QUERY_ON_ALL_IDLE_STATES 0x4
Constante | Valor | Descrição |
---|---|---|
PO_FX_FLAG_PERF_PEP_OPTIONAL | 1 (0x1) | Indica que o driver pode alterar estados de desempenho sem assistência do plug-in de extensão de plataforma (PEP) ou que o driver está registrando estados de desempenho com PoFx apenas para fins de registro em log. Se esse sinalizador for definido, a chamada PoFxRegisterComponentPerfStates ainda terá êxito se o PEP não oferecer suporte a estados de desempenho do componente. |
PO_FX_FLAG_PERF_QUERY_ON_F0 | 2 (0x2) | Para alguns dispositivos, o PEP pode precisar colocar um conjunto de estados de desempenho de um componente em um determinado estado de desempenho (conhecido como estado de desempenho nominal) quando deixa o componente ocioso. Os drivers definirão esse sinalizador se o componente contiver estados de desempenho nominal, caso em que o PoFx consultará o PEP para determinar o estado de desempenho atual quando o componente fizer a transição para F0. |
PO_FX_FLAG_PERF_QUERY_ON_ALL_IDLE_STATES | 4 (0x4) | Para alguns dispositivos, o PEP pode precisar colocar um conjunto de estados de desempenho de um componente em um determinado estado de desempenho (conhecido como estado de desempenho nominal) quando faz a transição do componente entre os estados ociosos. Os drivers definirão esse sinalizador se esse componente contiver estados de desempenho nominal, caso em que a PoFx consultará o PEP para determinar o estado de desempenho atual quando o componente fizer a transição entre estados ociosos. |
Observações PO_FX_FLAG_PERF_XXX
O parâmetro de sinalizadores para a rotina PoFxRegisterComponentPerfStates pode ser definido como uma constante PO_FX_FLAG_PERF_XXX.
Requisitos PO_FX_FLAG_PERF_XXX
Requisitos | Versão |
---|---|
Com suporte a partir do Windows 10. | Wdm.h |