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 :

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