Informazioni di riferimento sulla gestione energia del dispositivo

I driver possono dividere l'hardware del dispositivo in più componenti logici per abilitare la gestione dell'alimentazione con granularità fine. Un componente ha un set di stati di alimentazione che possono essere gestiti in modo indipendente dagli stati di alimentazione di altri componenti nello stesso dispositivo. Nello stato F0 il componente viene attivato completamente. Il componente potrebbe supportare stati F1, F2 e così via.

Il proprietario del criterio di alimentazione per un dispositivo è in genere il driver di funzione del dispositivo. Per abilitare la gestione delle potenza a livello di componente, questo driver registra il dispositivo con il framework di gestione energia (PoFx). Registrando il dispositivo, il driver presuppone la responsabilità di informare PoFx quando un componente viene usato attivamente e quando il componente è inattiva. PoFx effettua scelte di stato inattive intelligenti per il dispositivo in base alle informazioni sull'attività del componente, sulla tolleranza di latenza, sulle durate di inattività previste e sui requisiti di riattivazione. Controllando l'utilizzo della potenza a livello di componente, PoFx può ridurre i requisiti di alimentazione mantenendo la velocità di risposta del sistema. Per altre informazioni, vedere Power Management a livello di componente.

Routine di Risparmio energia dispositivo

Queste routine vengono implementate dal framework di risparmio energia (PoFx) per abilitare la gestione delle potenza del dispositivo. Queste routine vengono chiamate dal driver che è il proprietario del criterio di alimentazione (PPO) per un dispositivo. In genere, il driver di funzione per un dispositivo è il PPO per questo dispositivo.

Argomento Descrizione
PoFxActivateComponent La routine PoFxActivateComponent incrementa il conteggio dei riferimenti di attivazione nel componente specificato.
PoFxCompleteDevicePowerNotRequired La routine PoFxCompleteDevicePowerNotRequired notifica al framework di gestione energia (PoFx) che il driver chiamante ha completato la risposta a una chiamata alla routine di callback DevicePowerNotRequiredCallback del driver.
PoFxCompleteIdleCondition La routine PoFxCompleteIdleCondition informa il framework di gestione energia (PoFx) che il componente specificato ha completato una modifica in sospeso alla condizione inattiva.
PoFxCompleteIdleState La routine PoFxCompleteIdleState informa il framework di gestione energia (PoFx) che il componente specificato ha completato una modifica in sospeso in uno stato Fx.
PoFxIdleComponent La routine PoFxIdleComponent decrementa il conteggio dei riferimenti di attivazione nel componente specificato.
PoFxIssueComponentPerfStateChange La routine PoFxIssueComponentPerfStateChange invia una richiesta per inserire un componente del dispositivo in uno stato di prestazioni specifico.
PoFxIssueComponentPerfStateChangeMultiple La routine PoFxIssueComponentPerfStateChangeMultiple invia una richiesta per modificare gli stati delle prestazioni in più set di stati di prestazioni simultaneamente per un componente del dispositivo.
PoFxNotifySurprisePowerOn La routine PoFxNotifySurprisePowerOn notifica al framework di gestione energia (PoFx) che un dispositivo è stato attivato come effetto collaterale della fornitura di alimentazione a un altro dispositivo.
PoFxPowerControl La routine PoFxPowerControl invia una richiesta di controllo energia al framework di gestione energia (PoFx).
PoFxQueryCurrentComponentPerfState La routine PoFxQueryCurrentComponentPerfState recupera lo stato delle prestazioni attivo nel set di prestazioni di un componente.
PoFxRegisterComponentPerfStates La routine PoFxRegisterComponentPerfStates registra un componente del dispositivo per la gestione dello stato delle prestazioni dal framework di risparmio energia (PoFx).
PoFxRegisterDevice La routine PoFxRegisterDevice registra un dispositivo con il framework di risparmio energia (PoFx).
PoFxReportDevicePoweredOn La routine PoFxReportDevicePoweredOn notifica al framework di risparmio energia (PoFx) che il dispositivo ha completato la transizione richiesta allo stato di alimentazione D0 (completamente attivo).
PoFxSetComponentLatency La routine PoFxSetComponentLatency specifica la latenza massima che può essere tollerata nella transizione dalla condizione inattiva alla condizione attiva nel componente specificato.
PoFxSetComponentResidency La routine PoFxSetComponentResidency imposta il tempo stimato per quanto tempo un componente rimane inattiva dopo che il componente entra nella condizione di inattività.
PoFxSetComponentWake La routine PoFxSetComponentWake indica se il driver esegue la riattivazione del componente specificato ogni volta che il componente entra nella condizione inattiva.
PoFxSetDeviceIdleTimeout La routine PoFxSetDeviceIdleTimeout specifica l'intervallo di tempo minimo da quando l'ultimo componente del dispositivo entra nella condizione di inattività a quando il framework di gestione energia (PoFx) chiama la routine di callback DevicePowerNotRequiredCallback del driver.
PoFxStartDevicePowerManagement La routine PoFxStartDevicePowerManagement completa la registrazione di un dispositivo con il framework di gestione energia (PoFx) e avvia la gestione delle potenza del dispositivo.
PoFxUnregisterDevice La routine PoFxUnregisterDevice rimuove la registrazione di un dispositivo dal framework di gestione energia (PoFx).

Callback di Power Management per dispositivi

Queste routine di callback sono necessarie dal framework di risparmio energia (PoFx) per abilitare la gestione delle potenza del dispositivo. Il driver proprietario del criterio di alimentazione per il dispositivo implementa queste routine di callback. PoFx chiama queste routine per eseguire query e configurare gli stati di alimentazione dei componenti nel dispositivo.

Argomento Descrizione
ComponentActiveConditionCallback La routine di callback ComponentActiveConditionCallback notifica al driver che il componente specificato ha completato una transizione dalla condizione inattiva alla condizione attiva.
ComponentIdleConditionCallback La routine di callback ComponentIdleConditionCallback notifica al driver che il componente specificato ha completato una transizione dalla condizione attiva alla condizione inattiva.
ComponentIdleStateCallback La routine di callback ComponentIdleStateCallback notifica al driver di una modifica in sospeso allo stato di alimentazione Fx del componente specificato.
ComponentPerfStateCallback La routine di callback ComponentPerfStateCallback notifica al driver che la richiesta di modificare lo stato delle prestazioni di un componente è stata completata.
DevicePowerNotRequiredCallback La routine di callback DevicePowerNotRequiredCallback notifica al driver del dispositivo che il dispositivo non è necessario per rimanere nello stato di alimentazione D0.
DevicePowerRequiredCallback La routine di callback DevicePowerRequiredCallback notifica al driver del dispositivo che il dispositivo deve immettere e rimanere nello stato di alimentazione D0.
PowerControlCallback La routine di callback di PowerControlCallback esegue un'operazione di controllo energia richiesta dal framework di gestione energia (PoFx).

Strutture di Gestione energia dispositivo

Il framework di risparmio energia (PoFx) definisce queste strutture per supportare la gestione delle potenza del dispositivo.

Argomento Descrizione
PO_FX_COMPONENT_V1 PO_FX_COMPONENT_V2 La struttura PO_FX_COMPONENT descrive gli attributi dello stato di alimentazione di un componente in un dispositivo.
PO_FX_COMPONENT_IDLE_STATE La struttura PO_FX_COMPONENT_IDLE_STATE specifica gli attributi di uno stato di alimentazione Fx di un componente in un dispositivo.
PO_FX_COMPONENT_PERF_INFO La struttura PO_FX_COMPONENT_PERF_INFO descrive tutti i set di stati di prestazioni per un singolo componente all'interno di un dispositivo.
PO_FX_COMPONENT_PERF_SET La struttura PO_FX_COMPONENT_PERF_SET rappresenta un set di stati di prestazioni per un singolo componente all'interno di un dispositivo.
PO_FX_DEVICE_V1 PO_FX_DEVICE_V2PO_FX_DEVICE_V3 La struttura PO_FX_DEVICE descrive gli attributi di alimentazione di un dispositivo nel framework di gestione energia (PoFx).
PO_FX_PERF_STATE La struttura PO_FX_PERF_STATE rappresenta uno stato di prestazioni per un singolo componente all'interno di un dispositivo.
PO_FX_PERF_STATE_CHANGE La struttura PO_FX_PERF_STATE_CHANGE contiene informazioni su una modifica a uno stato di prestazioni richiesto chiamando la routine PoFxIssueComponentPerfStateChange o PoFxIssueComponentPerfStateChangeMultiple.

Enumerazioni di Power Management dispositivo

Il framework di risparmio energia (PoFx) definisce queste enumerazioni per supportare la gestione delle potenza del dispositivo.

Argomento Descrizione
PO_FX_PERF_STATE_TYPE L'enumerazione PO_FX_PERF_STATE_TYPE contiene valori che descrivono il tipo di stati delle prestazioni in un PO_FX_COMPONENT_PERF_SET.
PO_FX_PERF_STATE_UNIT L'enumerazione PO_FX_PERF_STATE_UNIT contiene valori che descrivono il tipo di unità controllata dagli stati delle prestazioni in un PO_FX_COMPONENT_PERF_SET.

Costanti di risparmio energia del dispositivo

PO_FX_FLAG_XXX bit di flag

Le costanti PO_FX_FLAG_XXX sono bit di flag che indicano se una richiesta di modifica della condizione del componente viene eseguita in modo sincrono o asincrono.

#define PO_FX_FLAG_BLOCKING   0x1
#define PO_FX_FLAG_ASYNC_ONLY 0x2

costanti PO_FX_FLAG_XXX

Costante Descrizione
PO_FX_FLAG_BLOCKING Apportare la modifica della condizione sincrona. Se questo flag è impostato, la routine che richiede la modifica della condizione non restituisce il controllo al driver chiamante finché l'hardware del componente completa la transizione alla nuova condizione. Questo flag può essere usato solo se il chiamante è in esecuzione in IRQL < DISPATCH_LEVEL.
PO_FX_FLAG_ASYNC_ONLY Apportare la modifica della condizione completamente asincrona. Se questo flag è impostato, la routine di callback del driver chiamante viene chiamata da un thread diverso dal thread in cui viene chiamata la routine che richiede la modifica della condizione. Pertanto, la routine che richiede la modifica della condizione restituisce sempre in modo asincrono senza attendere il completamento del callback.

PO_FX_FLAG_XXX osservazioni

Il parametro Flags per le routine seguenti può essere impostato su una costante PO_FX_FLAG_XXX :

I bit di PO_FX_FLAG_BLOCKING e PO_FX_FLAG_ASYNC_ONLY flag sono reciprocamente esclusivi. Il chiamante può impostare uno o l'altro bit di flag nel parametro Flags, ma non entrambi i bit di flag.

requisiti PO_FX_FLAG_XXX

Versione Intestazione
Supportato a partire da Windows 8. Wdm.h

PO_FX_FLAG_PERF_XXX bit di flag

Le costanti PO_FX_FLAG_PERF_XXX sono bit di flag che definiscono il modo in cui il framework di gestione energia (PoFx) gestisce gli stati delle prestazioni per un componente del 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
Costante Valore Descrizione
PO_FX_FLAG_PERF_PEP_OPTIONAL 1 (0x1) Indica che il driver può modificare gli stati delle prestazioni senza assistenza dal plug-in dell'estensione della piattaforma (PEP) o che il driver registra gli stati delle prestazioni con PoFx solo a scopo di registrazione. Se questo flag è impostato, la chiamata PoFxRegisterComponentPerfStates avrà esito positivo se il PEP non supporta gli stati delle prestazioni per il componente.
PO_FX_FLAG_PERF_QUERY_ON_F0 2 (0x2) Per alcuni dispositivi, il PEP potrebbe dover posizionare uno stato di prestazioni impostato per un componente in un determinato stato di prestazioni (noto come stato di prestazioni nominale) quando inattiva il componente. I driver impostano questo flag se il componente contiene stati di prestazioni nominale, nel qual caso PoFx eseguirà una query su PEP per determinare lo stato di prestazioni corrente quando il componente passa a F0.
PO_FX_FLAG_PERF_QUERY_ON_ALL_IDLE_STATES 4 (0x4) Per alcuni dispositivi, il PEP potrebbe dover posizionare uno stato di prestazioni impostato per un componente in un determinato stato di prestazioni (noto come stato di prestazioni nominale) quando passa il componente tra stati inattive. I driver impostano questo flag se questo componente contiene stati di prestazioni nominale, nel qual caso PoFx eseguirà una query sul PEP per determinare lo stato di prestazioni corrente quando il componente passa tra stati inattive.

PO_FX_FLAG_PERF_XXX osservazioni

Il parametro Flags della routine PoFxRegisterComponentPerfStates può essere impostato su una costante PO_FX_FLAG_PERF_XXX .

requisiti PO_FX_FLAG_PERF_XXX

Requisiti Versione
Supportato a partire da Windows 10. Wdm.h