Compartir a través de


Referencia de administración de energía de dispositivos

Los controladores pueden dividir su hardware de dispositivo en varios componentes lógicos para habilitar la administración de energía específica. Un componente tiene un conjunto de estados de energía que se pueden administrar independientemente de los estados de energía de otros componentes del mismo dispositivo. En el estado F0, el componente está totalmente activado. El componente podría admitir estados de bajo consumo adicionales F1, F2, etc.

El propietario de la directiva de energía para un dispositivo suele ser el controlador de funciones del dispositivo. Para habilitar la administración de energía de nivel de componente, este controlador registra el dispositivo con el marco de administración de energía (PoFx). Al registrar el dispositivo, el controlador asume la responsabilidad de informar a PoFx cuando se usa activamente un componente y cuando el componente está inactivo. PoFx toma opciones de estado de inactividad inteligentes para el dispositivo en función de la información sobre la actividad del componente, la tolerancia a la latencia, las duraciones de inactividad esperadas y los requisitos de reactivación. Al controlar el uso de energía en el nivel de componente, PoFx puede reducir los requisitos de energía al tiempo que conserva la capacidad de respuesta del sistema. Para obtener más información, consulte Component-Level Administración de energía.

Rutinas de administración de energía de dispositivos

Estas rutinas se implementan mediante el marco de administración de energía (PoFx) para habilitar la administración de energía de dispositivos. El controlador llama a estas rutinas que es el propietario de la directiva de energía (PPO) para un dispositivo. Normalmente, el controlador de funciones de un dispositivo es el 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 La rutina PoFxCompleteIdleState informa al marco de administración de energía (PoFx) de que el componente especificado ha completado un cambio pendiente a un 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).

Devoluciones de llamada de administración de energía de dispositivos

El marco de administración de energía (PoFx) requiere estas rutinas de devolución de llamada para habilitar la administración de energía del dispositivo. El controlador que es el propietario de la directiva de energía para el dispositivo implementa estas rutinas de devolución de llamada. PoFx llama a estas rutinas para consultar y configurar los estados de energía de los componentes del 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).

Estructuras de administración de energía de dispositivos

El marco de administración de energía (PoFx) define estas estructuras para admitir la administración de energía de dispositivos.

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.

Enumeraciones de administración de energía de dispositivos

El marco de administración de energía (PoFx) define estas enumeraciones para admitir la administración de energía de dispositivos.

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 administración de energía de dispositivos

bits de marca de PO_FX_FLAG_XXX

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 Haga que la condición cambie sincrónicamente. Si se establece esta marca, la rutina que solicita el cambio de condición no devuelve el control al controlador que realiza la llamada hasta que el hardware del componente complete la transición a la nueva condición. Esta marca solo se puede usar si el autor de la llamada se ejecuta en IRQL < DISPATCH_LEVEL.
PO_FX_FLAG_ASYNC_ONLY Haga que la condición cambie completamente asincrónica. Si se establece esta marca, se llama a la rutina de devolución de llamada del controlador de llamada desde un subproceso distinto del subproceso en el que se llama a la rutina que solicita el cambio de condición. Por lo tanto, la rutina que solicita el cambio de condición siempre devuelve de forma asincrónica sin esperar a que se complete la devolución de llamada.

PO_FX_FLAG_XXX remarks

The Flags parameter to the following routines can be set to a PO_FX_FLAG_XXX constant:

The PO_FX_FLAG_BLOCKING and PO_FX_FLAG_ASYNC_ONLY flag bits are mutually exclusive. El autor de la llamada puede establecer uno o el otro bit de marca en el parámetro Flags, pero no ambos bits de marca.

PO_FX_FLAG_XXX Requirements

Version Header
Se admite a partir de Windows 8. Wdm.h

bits de marca de PO_FX_FLAG_PERF_XXX

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 el controlador puede cambiar los estados de rendimiento sin ayuda del complemento de extensión de plataforma (PEP) o que el controlador registra estados de rendimiento con PoFx solo con fines de registro. 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 algunos dispositivos, es posible que el PEP necesite colocar un estado de rendimiento establecido para un componente en un determinado estado de rendimiento (conocido como estado de rendimiento nominal) cuando inactiva el componente. Los controladores establecen esta marca si el componente contiene estados de rendimiento nominales, en cuyo caso PoFx consultará el PEP para determinar el estado de rendimiento actual cuando el componente pase a F0.
PO_FX_FLAG_PERF_QUERY_ON_ALL_IDLE_STATES 4 (0x4) Para algunos dispositivos, el PEP puede necesitar colocar un estado de rendimiento establecido para un componente en un determinado estado de rendimiento (conocido como estado de rendimiento nominal) cuando realiza la transición del componente entre estados inactivos. Los controladores establecen esta marca si este componente contiene estados de rendimiento nominales, en cuyo caso PoFx consultará el PEP para determinar el estado de rendimiento actual cuando el componente pase entre estados inactivos.

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
Se admite a partir de Windows 10. Wdm.h