Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os drivers podem dividir o hardware do dispositivo em vários componentes lógicos para habilitar 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 baixa potência 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 PoFx (estrutura de gerenciamento de energia). 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. O PoFx faz opções de estado ocioso inteligentes para o dispositivo com base nas informações sobre a atividade do componente, a tolerância à latência, as durações ociosas esperadas e os requisitos de ativação. Ao controlar o uso de energia no nível do componente, o PoFx pode reduzir os requisitos de energia, preservando a capacidade de resposta do sistema. Para obter mais informações, consulte Component-Level Power Management.
Rotinas de gerenciamento de energia do dispositivo
Essas rotinas são implementadas pela PoFx (estrutura de gerenciamento de energia) para habilitar o gerenciamento de energia do dispositivo. Essas rotinas são chamadas pelo driver que é o PPO (proprietário da política de energia) de um dispositivo. Normalmente, o driver de função de um dispositivo é o PPO para este dispositivo.
| Topic | Description |
|---|---|
| PoFxActivateComponent | The PoFxActivateComponent routine increments the activation reference count on the specified component. |
| PoFxCompleteDevicePowerNotRequired | The PoFxCompleteDevicePowerNotRequired routine notifies the power management framework (PoFx) that the calling driver has completed its response to a call to the driver's DevicePowerNotRequiredCallback callback routine. |
| PoFxCompleteIdleCondition | The PoFxCompleteIdleCondition routine informs the power management framework (PoFx) that the specified component has completed a pending change to the idle condition. |
| PoFxCompleteIdleState | A rotina PoFxCompleteIdleState informa à PoFx (estrutura de gerenciamento de energia) que o componente especificado concluiu uma alteração pendente em um estado fx. |
| PoFxIdleComponent | The PoFxIdleComponent routine decrements the activation reference count on the specified component. |
| PoFxIssueComponentPerfStateChange | The PoFxIssueComponentPerfStateChange routine submits a request to place a device component in a particular performance state. |
| PoFxIssueComponentPerfStateChangeMultiple | The PoFxIssueComponentPerfStateChangeMultiple routine submits a request to change the performance states in multiple performance state sets simultaneously for a device component. |
| PoFxNotifySurprisePowerOn | The PoFxNotifySurprisePowerOn routine notifies the power management framework (PoFx) that a device was turned on as a side effect of supplying power to some other device. |
| PoFxPowerControl | The PoFxPowerControl routine sends a power control request to the power management framework (PoFx). |
| PoFxQueryCurrentComponentPerfState | The PoFxQueryCurrentComponentPerfState routine retrieves the active performance state in a component's performance state set. |
| PoFxRegisterComponentPerfStates | The PoFxRegisterComponentPerfStates routine registers a device component for performance state management by the power management framework (PoFx). |
| PoFxRegisterDevice | The PoFxRegisterDevice routine registers a device with the power management framework (PoFx). |
| PoFxReportDevicePoweredOn | The PoFxReportDevicePoweredOn routine notifies the power management framework (PoFx) that the device completed the requested transition to the D0 (fully on) power state. |
| PoFxSetComponentLatency | The PoFxSetComponentLatency routine specifies the maximum latency that can be tolerated in the transition from the idle condition to the active condition in the specified component. |
| PoFxSetComponentResidency | The PoFxSetComponentResidency routine sets the estimated time for how long a component is likely to remain idle after the component enters the idle condition. |
| PoFxSetComponentWake | The PoFxSetComponentWake routine indicates whether the driver arms the specified component to wake whenever the component enters the idle condition. |
| PoFxSetDeviceIdleTimeout | The PoFxSetDeviceIdleTimeout routine specifies the minimum time interval from when the last component of the device enters the idle condition to when the power management framework (PoFx) calls the driver's DevicePowerNotRequiredCallback callback routine. |
| PoFxStartDevicePowerManagement | The PoFxStartDevicePowerManagement routine completes the registration of a device with the power management framework (PoFx) and starts device power management. |
| PoFxUnregisterDevice | The PoFxUnregisterDevice routine removes the registration of a device from the power management framework (PoFx). |
Retornos de chamada de gerenciamento de energia do dispositivo
Essas rotinas de retorno de chamada são exigidas pela PoFx (estrutura de gerenciamento de energia) para habilitar o gerenciamento de energia do dispositivo. O driver que é o proprietário da política de energia para o dispositivo implementa essas rotinas de retorno de chamada. O PoFx chama essas rotinas para consultar e configurar os estados de energia dos componentes no dispositivo.
| Topic | Description |
|---|---|
| ComponentActiveConditionCallback | The ComponentActiveConditionCallback callback routine notifies the driver that the specified component completed a transition from the idle condition to the active condition. |
| ComponentIdleConditionCallback | The ComponentIdleConditionCallback callback routine notifies the driver that the specified component completed a transition from the active condition to the idle condition. |
| ComponentIdleStateCallback | The ComponentIdleStateCallback callback routine notifies the driver of a pending change to the Fx power state of the specified component. |
| ComponentPerfStateCallback | The ComponentPerfStateCallback callback routine notifies the driver that its request to change the performance state of a component is complete. |
| DevicePowerNotRequiredCallback | The DevicePowerNotRequiredCallback callback routine notifies the device driver that the device is not required to stay in the D0 power state. |
| DevicePowerRequiredCallback | The DevicePowerRequiredCallback callback routine notifies the device driver that the device must enter and remain in the D0 power state. |
| PowerControlCallback | The PowerControlCallback callback routine performs a power control operation that is requested by the power management framework (PoFx). |
Estruturas de gerenciamento de energia do dispositivo
A PoFx (estrutura de gerenciamento de energia) define essas estruturas para dar suporte ao gerenciamento de energia do dispositivo.
| Topic | Description |
|---|---|
| PO_FX_COMPONENT_V1PO_FX_COMPONENT_V2 | The PO_FX_COMPONENT structure describes the power state attributes of a component in a device. |
| PO_FX_COMPONENT_IDLE_STATE | The PO_FX_COMPONENT_IDLE_STATE structure specifies the attributes of an Fx power state of a component in a device. |
| PO_FX_COMPONENT_PERF_INFO | The PO_FX_COMPONENT_PERF_INFO structure describes all the sets of performance states for a single component within a device. |
| PO_FX_COMPONENT_PERF_SET | The PO_FX_COMPONENT_PERF_SET structure represents a set of performance states for a single component within a device. |
| PO_FX_DEVICE_V1PO_FX_DEVICE_V2PO_FX_DEVICE_V3 | The PO_FX_DEVICE structure describes the power attributes of a device to the power management framework (PoFx). |
| PO_FX_PERF_STATE | The PO_FX_PERF_STATE structure represents a performance state for a single component within a device. |
| PO_FX_PERF_STATE_CHANGE | The PO_FX_PERF_STATE_CHANGE structure contains information about a change to a performance state that is being requested by calling the PoFxIssueComponentPerfStateChange or PoFxIssueComponentPerfStateChangeMultiple routine. |
Enumerações de Gerenciamento de Energia do Dispositivo
A PoFx (estrutura de gerenciamento de energia) define essas enumerações para dar suporte ao gerenciamento de energia do dispositivo.
| Topic | Description |
|---|---|
| PO_FX_PERF_STATE_TYPE | The PO_FX_PERF_STATE_TYPE enumeration contains values that describe the type of performance states in a PO_FX_COMPONENT_PERF_SET. |
| PO_FX_PERF_STATE_UNIT | The PO_FX_PERF_STATE_UNIT enumeration contains values that describe the type of unit that is controlled by the performance states in a PO_FX_COMPONENT_PERF_SET. |
Constantes de gerenciamento de energia do dispositivo
PO_FX_FLAG_XXX bits de sinalizador
The PO_FX_FLAG_XXX constants are flag bits that indicate whether a request to change the condition of component is performed synchronously or asynchronously.
#define PO_FX_FLAG_BLOCKING 0x1
#define PO_FX_FLAG_ASYNC_ONLY 0x2
PO_FX_FLAG_XXX constants
| Constant | Description |
|---|---|
| PO_FX_FLAG_BLOCKING | Torne a condição de alteração síncrona. Se esse sinalizador estiver definido, a rotina que solicita a alteração da 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 em execução no IRQL < DISPATCH_LEVEL. |
| PO_FX_FLAG_ASYNC_ONLY | Faça com que a condição mude totalmente assíncrona. Se esse sinalizador for 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 da condição será chamada. Assim, a rotina que solicita a alteração da condição sempre retorna de forma assíncrona sem aguardar a conclusão do retorno de chamada. |
PO_FX_FLAG_XXX remarks
The Flags parameter to the following routines can be set to a PO_FX_FLAG_XXX constant:
- PoFxActivateComponent
- PoFxIdleComponent
- PoFxIssueComponentPerfStateChange
- PoFxIssueComponentPerfStateChangeMultiple
The PO_FX_FLAG_BLOCKING and PO_FX_FLAG_ASYNC_ONLY flag bits are mutually exclusive. O chamador pode definir um ou outro bit de sinalizador no parâmetro Flags, mas não ambos os bits de sinalizador.
PO_FX_FLAG_XXX Requirements
| Version | Header |
|---|---|
| Com suporte a partir do Windows 8. | Wdm.h |
PO_FX_FLAG_PERF_XXX bits de sinalizador
The PO_FX_FLAG_PERF_XXX constants are flag bits that define how the power management framework (PoFx) manages performance states for a device component.
#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
| Constant | Value | Description |
|---|---|---|
| PO_FX_FLAG_PERF_PEP_OPTIONAL | 1 (0x1) | Indica que o driver pode alterar os estados de desempenho sem assistência do PEP (plug-in de extensão de plataforma) ou que o driver está registrando estados de desempenho com PoFx somente para fins de registro em log. If this flag is set, the PoFxRegisterComponentPerfStates call will still succeeded if the PEP does not support performance states for the component. |
| PO_FX_FLAG_PERF_QUERY_ON_F0 | 2 (0x2) | Para alguns dispositivos, o PEP pode precisar colocar um conjunto de estado de desempenho para um componente em um determinado estado de desempenho (conhecido como um estado de desempenho nominal) quando ocioso o componente. Os drivers definem esse sinalizador se o componente contiver estados de desempenho nominais, nesse caso, 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 estado de desempenho definido para um componente em um determinado estado de desempenho (conhecido como um estado de desempenho nominal) quando ele faz a transição do componente entre estados ociosos. Os drivers definem esse sinalizador se esse componente contiver estados de desempenho nominais, nesse caso, o PoFx consultará o PEP para determinar o estado de desempenho atual quando o componente fizer a transição entre estados ociosos. |
PO_FX_FLAG_PERF_XXX remarks
The Flags parameter to the PoFxRegisterComponentPerfStates routine can be set to a PO_FX_FLAG_PERF_XXX constant.
PO_FX_FLAG_PERF_XXX requirements
| Requirements | Version |
|---|---|
| Com suporte a partir do Windows 10. | Wdm.h |