Informazioni di riferimento sul risparmio energia del dispositivo
I driver possono dividere l'hardware del dispositivo in più componenti logici per abilitare il risparmio energia con granularità fine. Un componente ha un set di stati di alimentazione che possono essere gestiti indipendentemente dagli stati di alimentazione di altri componenti nello stesso dispositivo. Nello stato F0 il componente è completamente attivato. Il componente potrebbe supportare stati aggiuntivi a basso consumo F1, F2 e così via.
Il proprietario dei criteri di alimentazione per un dispositivo è in genere il driver di funzione del dispositivo. Per abilitare il risparmio energia a livello di componente, questo driver registra il dispositivo con il framework di risparmio energia (PoFx). Registrando il dispositivo, il driver assume la responsabilità di informare PoFx quando un componente viene usato attivamente e quando il componente è inattivo. PoFx consente di scegliere uno stato di inattività intelligente 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 di energia a livello di componente, PoFx può ridurre i requisiti di alimentazione mantenendo al tempo stesso la velocità di risposta del sistema. Per altre informazioni, vedere Risparmio energia a livello di componente.
Routine di risparmio energia del dispositivo
Queste routine vengono implementate dal framework di risparmio energia (PoFx) per abilitare il risparmio energia del dispositivo. Queste routine vengono chiamate dal driver che è il proprietario dei criteri 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 risparmio 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 risparmio energia (PoFx) che il componente specificato ha completato una modifica in sospeso alla condizione di inattività. |
PoFxCompleteIdleState | La routine PoFxCompleteIdleState informa il framework di risparmio energia (PoFx) che il componente specificato ha completato una modifica in sospeso a uno stato Fx. |
PoFxIdleComponent | La routine PoFxIdleComponent decrementa il conteggio dei riferimenti di attivazione nel componente specificato. |
PoFxIssueComponentPerfStateChange | La routine PoFxIssueComponentPerfStateChange invia una richiesta di inserire un componente del dispositivo in un determinato stato di prestazioni. |
PoFxIssueComponentPerfStateChangeMultiple | La routine PoFxIssueComponentPerfStateChangeMultiple invia una richiesta per modificare gli stati delle prestazioni in più set di stati delle prestazioni contemporaneamente per un componente del dispositivo. |
PoFxNotifySurprisePowerOn | La routine PoFxNotifySurprisePowerOn notifica al framework di risparmio energia (PoFx) che un dispositivo è stato attivato come effetto collaterale dell'alimentazione di un altro dispositivo. |
PoFxPowerControl | La routine PoFxPowerControl invia una richiesta di controllo alimentazione al framework di risparmio energia (PoFx). |
PoFxQueryCurrentComponentPerfState | La routine PoFxQueryCurrentComponentPerfState recupera lo stato delle prestazioni attivo nel set di stati delle prestazioni di un componente. |
PoFxRegisterComponentPerfStates | La routine PoFxRegisterComponentPerfStates registra un componente del dispositivo per la gestione dello stato delle prestazioni da parte del 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 di inattività 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 di inattività. |
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 risparmio energia (PoFx) chiama la routine di callback DevicePowerNotRequiredCallback del driver. |
PoFxStartDevicePowerManagement | La routine PoFxStartDevicePowerManagement completa la registrazione di un dispositivo con il framework di risparmio energia (PoFx) e avvia il risparmio energia del dispositivo. |
PoFxUnregisterDevice | La routine PoFxUnregisterDevice rimuove la registrazione di un dispositivo dal framework di risparmio energia (PoFx). |
Callback di risparmio energia del dispositivo
Queste routine di callback sono richieste dal framework di risparmio energia (PoFx) per abilitare il risparmio energia del dispositivo. Il driver proprietario dei criteri 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 di inattività 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 di inattività. |
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 di dispositivo che il dispositivo non è necessario per rimanere nello stato di alimentazione D0. |
DevicePowerRequiredCallback | La routine di callback DevicePowerRequiredCallback notifica al driver di dispositivo che il dispositivo deve entrare e rimanere nello stato di alimentazione D0. |
PowerControlCallback | La routine di callback PowerControlCallback esegue un'operazione di controllo alimentazione richiesta dal framework di risparmio energia (PoFx). |
Strutture di risparmio energia del dispositivo
Il framework di risparmio energia (PoFx) definisce queste strutture per supportare il risparmio energia 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_V2 PO_FX_DEVICE_V3 | La struttura PO_FX_DEVICE descrive gli attributi di alimentazione di un dispositivo nel framework di risparmio energia (PoFx). |
PO_FX_PERF_STATE | La struttura PO_FX_PERF_STATE rappresenta uno stato delle 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 Risparmio energia del dispositivo
Il framework di risparmio energia (PoFx) definisce queste enumerazioni per supportare il risparmio energia 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 flag bit
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 sincrona della condizione. Se questo flag è impostato, la routine che richiede la modifica della condizione non restituisce il controllo al driver chiamante finché l'hardware del componente non 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, viene chiamata la routine di callback del driver chiamante 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 flag PO_FX_FLAG_BLOCKING e PO_FX_FLAG_ASYNC_ONLY si escludono a vicenda. Il chiamante può impostare uno o l'altro bit flag nel parametro Flags, ma non entrambi i bit di flag.
requisiti di 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 flag che definiscono il modo in cui il framework di risparmio 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 di estensione della piattaforma (PEP) o che il driver sta registrando gli stati delle prestazioni con PoFx solo a scopo di registrazione. Se questo flag è impostato, la chiamata PoFxRegisterComponentPerfStates avrà comunque 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 un set di stati di prestazioni 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 di inattività. I driver impostano questo flag se questo 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 tra stati di inattività. |
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 |