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 :
- PoFxActivateComponent
- PoFxIdleComponent
- PoFxIssueComponentPerfStateChange
- PoFxIssueComponentPerfStateChangeMultiple
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 |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per