Condividi tramite


Notifiche di risparmio energia dispositivo (DPM)

Ogni notifica di risparmio energia del dispositivo (DPM) indica che la routine di callback AcceptDeviceNotification di PEP viene accompagnata da un parametro Notification che indica il tipo di notifica e un parametro Data che punta a una struttura di dati che contiene le informazioni per il tipo di notifica specificato.

In questa chiamata, il parametro Notification viene impostato su un valore costante PEP_DPM_XXX che indica il tipo di notifica. Il parametro Data punta a un tipo di struttura PEP_XXX associato a questo tipo di notifica.

ID notifica Valore Struttura associata
PEP_DPM_PREPARE_DEVICE 0x01 PEP_PREPARE_DEVICE
PEP_DPM_ABANDON_DEVICE 0x02 PEP_ABANDON_DEVICE
PEP_DPM_REGISTER_DEVICE 0x03 PEP_REGISTER_DEVICE_V2
PEP_DPM_UNREGISTER_DEVICE 0x04 PEP_UNREGISTER_DEVICE
PEP_DPM_DEVICE_POWER_STATE 0x05 PEP_DEVICE_POWER_STATE
PEP_DPM_COMPONENT_ACTIVE 0x07 PEP_COMPONENT_ACTIVE
PEP_DPM_WORK 0x0d PEP_WORK
PEP_DPM_POWER_CONTROL_REQUEST 0x0E PEP_POWER_CONTROL_REQUEST
PEP_DPM_POWER_CONTROL_COMPLETE 0x0F PEP_POWER_CONTROL_COMPLETE
PEP_DPM_SYSTEM_LATENCY_UPDATE 0x10 PEP_SYSTEM_LATENCY
PEP_DPM_DEVICE_STARTED 0x12 PEP_DEVICE_STARTED
PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE 0x13 PEP_NOTIFY_COMPONENT_IDLE_STATE
PEP_DPM_REGISTER_DEBUGGER 0x15 PEP_REGISTER_DEBUGGER
PEP_DPM_LOW_POWER_EPOCH 0x18 PEP_LOW_POWER_EPOCH
PEP_DPM_REGISTER_CRASHDUMP_DEVICE 0x19 PEP_REGISTER_CRASHDUMP_DEVICE
PEP_DPM_DEVICE_IDLE_CONSTRAINTS 0x1A PEP_DEVICE_PLATFORM_CONSTRAINTS
PEP_DPM_COMPONENT_IDLE_CONSTRAINTS 0x1B PEP_COMPONENT_PLATFORM_CONSTRAINTS
PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES 0x1C PEP_QUERY_COMPONENT_PERF_CAPABILITIES
PEP_DPM_QUERY_COMPONENT_PERF_SET 0x1D PEP_QUERY_COMPONENT_PERF_SET
PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME 0x1E PEP_QUERY_COMPONENT_PERF_SET_NAME
PEP_DPM_QUERY_COMPONENT_PERF_STATES 0x1F PEP_QUERY_COMPONENT_PERF_STATES
PEP_DPM_REGISTER_COMPONENT_PERF_STATES 0x20 PEP_REGISTER_COMPONENT_PERF_STATES
PEP_DPM_REQUEST_COMPONENT_PERF_STATE 0x21 PEP_REQUEST_COMPONENT_PERF_STATE
PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE 0x22 PEP_QUERY_CURRENT_COMPONENT_PERF_STATE
PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS 0x23 PEP_DEBUGGER_TRANSITION_REQUIREMENTS
PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT 0x24 PEP_QUERY_SOC_SUBSYSTEM_COUNT
PEP_DPM_QUERY_SOC_SUBSYSTEM 0x25 PEP_QUERY_SOC_SUBSYSTEM
PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING 0x26 PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING
PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME 0x27 PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME
PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA 0x28 PEP_QUERY_SOC_SUBSYSTEM_METADATA

ID notifica

Gli ID di notifica DPM seguenti vengono usati dalla routine di callback AcceptDeviceNotification.

PEP_DPM_PREPARE_DEVICE

Notifica (PEP_DPM_PREPARE_DEVICE)

Valore PEP_DPM_PREPARE_DEVICE.

Dati (PEP_DPM_PREPARE_DEVICE)

Puntatore a una struttura PEP_PREPARE_DEVICE . Indica al PEP che possiede il dispositivo specificato per configurare il dispositivo in modo che funzioni nello stato di alimentazione del dispositivo D0 (funzionante).

Il framework di risparmio energia di Windows (PoFx) invia questa notifica al PEP prima che lo stack di driver di un dispositivo venga avviato per la prima volta dal sistema operativo. Questa notifica consente al PEP di attivare qualsiasi risorsa esterna di alimentazione o orologio necessaria per il funzionamento del dispositivo.

Per inviare una notifica di PEP_DPM_PREPARE_DEVICE, il sistema operativo chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_PREPARE_DEVICE e il parametro Data punta a una struttura PEP_PREPARE_DEVICE. Nella voce il membro DeviceId di questa struttura è una stringa di identificazione del dispositivo che identifica in modo univoco un dispositivo. Prima di restituire, il PEP imposta il membro DeviceAccepted di questa struttura su TRUE per richiedere la proprietà del dispositivo o su FALSE per indicare che non è proprietario del dispositivo.

Il PEP proprietario del risparmio energia per un dispositivo è responsabile della gestione dell'alimentazione e dell'orologio che sono esterni al dispositivo e che sono necessari per operare il dispositivo. Questo PEP consente il segnale di clock e l'alimentazione al dispositivo in risposta a una notifica di PEP_DPM_PREPARE_DEVICE e rimuove il segnale di clock e l'alimentazione dal dispositivo in risposta a una notifica di PEP_DPM_ABANDON_DEVICE.

La tabella seguente illustra le precondizioni effettive quando questo sistema operativo invia una notifica di PEP_DPM_PREPARE_DEVICE al PEP e le postcondizioni che devono essere applicate dopo che il PEP gestisce questa notifica per un dispositivo proprietario.

Preconditions Postconditions
Il dispositivo può trovarsi in qualsiasi stato di alimentazione. Se il PEP dichiara la proprietà del dispositivo, il dispositivo e tutti i relativi componenti devono essere attivati e gli orologi al dispositivo devono essere annullati.
Il PEP può ricevere notifiche PEP_DPM_PREPARE_DEVICE per più dispositivi quando il risparmio energia tenta di trovare proprietari PEP per questi dispositivi. Il PEP deve impostare il membro DeviceAccepted della struttura PEP_PREPARE_DEVICE su FALSE per tutti i dispositivi che il PEP non è proprietario.

Non vengono inviate notifiche PEP_DPM_PREPARE_DEVICE per i dispositivi principali.

Per una notifica di PEP_DPM_PREPARE_DEVICE, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_ABANDON_DEVICE

Notifica (PEP_DPM_ABANDON_DEVICE)

Valore PEP_DPM_ABANDON_DEVICE.

Dati (PEP_DPM_ABANDON_DEVICE)

Puntatore a una struttura PEP_ABANDON_DEVICE . Indica al PEP che il dispositivo specificato non viene più utilizzato dal sistema operativo.

Il framework di risparmio energia di Windows (PoFx) invia questa notifica al PEP dopo che il sistema operativo rimuove lo stack di driver di un dispositivo. Questa notifica consente al PEP di disattivare qualsiasi risorsa esterna di alimentazione o orologio usata per gestire il dispositivo e di rimuovere il dispositivo dai processi decisionali futuri. Se il dispositivo deve essere avviato di nuovo in un secondo momento, il PEP riceverà prima una notifica di PEP_DPM_PREPARE_DEVICE.

Per inviare una notifica di PEP_DPM_ABANDON_DEVICE, il sistema operativo chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_ABANDON_DEVICE e il parametro Data punta a una struttura PEP_ABANDON_DEVICE. Nella voce il membro DeviceId di questa struttura è una stringa di identificazione del dispositivo che identifica in modo univoco un dispositivo. Prima di restituire, il PEP imposta il membro DeviceAccepted di questa struttura su TRUE per richiedere la proprietà del dispositivo o su FALSE per indicare che non è proprietario del dispositivo.

Il PEP proprietario del risparmio energia per un dispositivo è responsabile della gestione dell'alimentazione e dell'orologio che sono esterni al dispositivo e che sono necessari per operare il dispositivo.

La tabella seguente illustra le precondizioni effettive quando questo sistema operativo invia una notifica di PEP_DPM_ABANDON_DEVICE al PEP e le postcondizioni che devono essere applicate dopo che il PEP gestisce questa notifica per un dispositivo proprietario.

Preconditions Postconditions
Il PEP ha ricevuto una notifica PEP_DPM_PREPARE_DEVICE per il dispositivo e ha accettato la proprietà del dispositivo.
Se il PEP ha ricevuto una notifica di PEP_DPM_REGISTER_DEVICE per il dispositivo e ha accettato la registrazione del dispositivo, ha successivamente ricevuto una notifica di PEP_DPM_UNREGISTER_DEVICE per il dispositivo.
Tutte le risorse allocate in risposta alla notifica di PEP_DPM_PREPARE_DEVICE devono essere liberate.
Per una notifica di PEP_DPM_PREPARE_DEVICE, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_REGISTER_DEVICE

Notifica (PEP_DPM_REGISTER_DEVICE)

Valore PEP_DPM_REGISTER_DEVICE.

Dati (PEP_DPM_REGISTER_DEVICE)

Puntatore a una struttura PEP_REGISTER_DEVICE_V2 .

Indica al PEP che lo stack di driver per il dispositivo specificato è registrato con il framework di risparmio energia di Windows (PoFx).

PoFx invia questa notifica quando lo stack di driver del dispositivo chiama la routine PoFxRegisterDevice per registrare il dispositivo. Questa notifica consente al PEP di copiare le informazioni di registrazione del dispositivo nella risorsa di archiviazione interna del PEP per riferimento successivo.

Per inviare una notifica di PEP_DPM_REGISTER_DEVICE, il sistema operativo chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata, il valore del parametro Notification è PEP_DPM_REGISTER_DEVICE e il parametro Data punta a una struttura PEP_REGISTER_DEVICE_V2 che contiene l'handle del kernel del dispositivo e altre informazioni di registrazione. Nella voce il membro DeviceId di questa struttura è una stringa di identificazione del dispositivo che identifica in modo univoco un dispositivo. Prima di restituire, il PEP imposta il membro DeviceAccepted di questa struttura su TRUE per richiedere la proprietà del dispositivo o su FALSE per indicare che non è proprietario del dispositivo. Per informazioni sugli altri membri di questa struttura, vedere PEP_REGISTER_DEVICE_V2.

La tabella seguente illustra le precondizioni effettive quando questo sistema operativo invia una notifica di PEP_DPM_REGISTER_DEVICE al PEP e le postcondizioni che devono essere applicate dopo che il PEP gestisce questa notifica per un dispositivo proprietario.

Preconditions Postconditions
Il PEP ha ricevuto una notifica di PEP_DPM_PREPARE_DEVICE per un dispositivo di cui è proprietario. Pep è pronto per ricevere altre notifiche di risparmio energia del dispositivo (DPM) associate a questo dispositivo.

Per una notifica di PEP_DPM_REGISTER_DEVICE, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_UNREGISTER_DEVICE

Notifica (PEP_DPM_UNREGISTER_DEVICE)

Valore PEP_DPM_UNREGISTER_DEVICE.

Dati (PEP_DPM_UNREGISTER_DEVICE)

Puntatore a una struttura PEP_UNREGISTER_DEVICE .

Indica al PEP che possiede il dispositivo specificato che lo stack di driver del dispositivo ha ritirato la registrazione dal framework di risparmio energia di Windows (PoFx).

PoFx invia questa notifica per informare il PEP che tutte le informazioni di registrazione archiviate per il dispositivo durante il precedente PEP_DPM_REGISTER_DEVICE notifica non sono più valide. In risposta, il PEP può pulire qualsiasi stato interno usato per il risparmio energia di questo dispositivo.

Per inviare una notifica di PEP_DPM_UNREGISTER_DEVICE, il sistema operativo chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_UNREGISTER_DEVICE e il parametro Data punta a una struttura PEP_UNREGISTER_DEVICE. Questa struttura contiene l'handle creato dal PEP in risposta alla notifica PEP_DPM_REGISTER_DEVICE precedente per il dispositivo.

La tabella seguente illustra le precondizioni effettive quando questo sistema operativo invia una notifica di PEP_DPM_UNREGISTER_DEVICE al PEP e le postcondizioni che devono essere applicate dopo che il PEP gestisce questa notifica per un dispositivo proprietario.

Preconditions Postconditions
Se il PEP ha ricevuto una notifica di PEP_DPM_REGISTER_DEVICE per il dispositivo e ha accettato la registrazione del dispositivo.
Il PEP può ricevere qualsiasi notifica di risparmio energia del dispositivo (DPM) associata a questo dispositivo.
Il PEP può segnalare il "lavoro" associato a questo dispositivo.
Pep non può più ricevere notifiche di risparmio energia del dispositivo (DPM) associate a questo dispositivo, ad eccezione di PEP_DPM_ABANDON_DEVICE.
Il PEP non può segnalare il "lavoro" associato al dispositivo.

Per una notifica di PEP_DPM_UNREGISTER_DEVICE, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_DEVICE_POWER_STATE

Notifica (PEP_DPM_DEVICE_POWER_STATE)

Valore PEP_DPM_DEVICE_POWER_STATE.

Dati (PEP_DPM_DEVICE_POWER_STATE)

Puntatore a una struttura PEP_DEVICE_POWER_STATE .

Inviato al PEP ogni volta che lo stack di driver del dispositivo richiede una modifica a un nuovo stato di alimentazione Dx o una transizione richiesta in precedenza a uno stato di alimentazione Dx viene completata.

Dopo che pep chiama la routine RequestWorker per richiedere un elemento di lavoro, PoFx risponde inviando il PEP una notifica di PEP_DPM_DEVICE_POWER_STATE. Tuttavia, questa notifica non viene inviata fino a quando non sono disponibili le risorse (ovvero il thread di lavoro) necessario per elaborare l'elemento di lavoro. In questo modo, PoFx garantisce che la richiesta di lavoro che il PEP passa a PoFx durante la notifica non può mai non riuscire a causa della mancanza di risorse.

Per inviare una notifica di PEP_DPM_DEVICE_POWER_STATE, il sistema operativo chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_DEVICE_POWER_STATE e il parametro Data punta a una struttura PEP_DEVICE_POWER_STATE. All'ingresso, il PEP deve presupporre che il contenuto di questa struttura non sia inizializzato. Per gestire questa notifica, il PEP deve impostare il membro WorkInformation in modo che punti a una struttura PEP_WORK_INFORMATION allocata da PEP che descrive il lavoro richiesto. Inoltre, il PEP deve impostare il membro NeedWork della struttura PEP_WORK su TRUE per verificare che il PEP abbia gestito la notifica PEP_DEVICE_POWER_STATE e che il membro WorkInformation punti a una struttura di PEP_WORK_INFORMATION valida. Se il PEP non riesce a gestire la notifica o non è in grado di allocare la struttura di PEP_WORK_INFORMATION, il PEP deve impostare il membro WorkInformation su NULL e impostare il membro NeedWork su FALSE.

Per una notifica di PEP_DPM_DEVICE_POWER_STATE, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_COMPONENT_ACTIVE

Notifica (PEP_DPM_COMPONENT_ACTIVE)

Valore PEP_DPM_COMPONENT_ACTIVE.

Dati (PEP_DPM_COMPONENT_ACTIVE)

Puntatore a una struttura PEP_COMPONENT_ACTIVE che identifica il componente e che indica se questo componente sta effettuando una transizione alla condizione attiva o alla condizione di inattività.

Informa il PEP che un componente deve eseguire una transizione dalla condizione inattiva alla condizione attiva o viceversa.

Il framework di risparmio energia di Windows (PoFx) invia questa notifica quando una transizione è in sospeso alla condizione attiva o alla condizione inattiva.

Per inviare una notifica di PEP_DPM_COMPONENT_ACTIVE, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_COMPONENT_ACTIVE e il parametro Data punta a una struttura PEP_COMPONENT_ACTIVE.

Un componente accessibile si trova nella condizione attiva. Un componente inaccessibile si trova nella condizione di inattività. Un componente che si trova nella condizione attiva è sempre nello stato di alimentazione del componente F0. Il componente non può lasciare F0 finché non entra nella condizione di inattività. Un componente che si trova nella condizione di inattività può essere in stato F0 o in uno stato Fx a basso consumo. La condizione attiva/inattiva di un componente è l'unico mezzo affidabile per un driver per determinare se un componente è accessibile. Un componente che si trova in F0 ma è anche nella condizione di inattività potrebbe essere in fase di passaggio a uno stato fx a basso consumo.

Quando un componente attivo è pronto per entrare nella condizione di inattività, la transizione viene eseguita immediatamente. Durante la gestione della notifica di PEP_DPM_COMPONENT_ACTIVE, il PEP potrebbe, ad esempio, richiedere una transizione da F0 a uno stato fx a basso consumo per il componente.

Se un componente si trova in uno stato fx a basso consumo quando una notifica di PEP_DPM_COMPONENT_ACTIVE richiede una transizione dalla condizione inattiva alla condizione attiva, il PEP deve prima passare il componente a F0 prima che il componente possa entrare nella condizione attiva. Il PEP potrebbe dover completare la preparazione del componente per la transizione alla condizione attiva in modo asincrono, dopo la restituzione dal callback AcceptDeviceNotification per la notifica di PEP_DPM_COMPONENT_ACTIVE. Dopo che il componente è completamente configurato per operare nella condizione attiva, il PEP deve chiamare la routine RequestWorker e quindi gestire la notifica PEP_DPM_WORK risultante impostando WorkType = PepWorkActiveComplete nella struttura PEP_WORK_INFORMATION.

Se il PEP riceve una notifica di PEP_DPM_COMPONENT_ACTIVE per un componente che si trova in F0 ed è già completamente configurato per operare nella condizione attiva, il PEP potrebbe essere in grado di completare la gestione di questa notifica in modo sincrono. Se la gestione "percorso rapido" della notifica è supportata, il membro WorkInformation della struttura PEP_COMPONENT_ACTIVE per questa notifica contiene un puntatore a una struttura PEP_WORK_INFORMATION e il PEP può impostare il membro WorkType di questa struttura su PepWorkActiveComplete per completare la transizione. Tuttavia, se WorkInformation = NULL, non è disponibile alcun "percorso rapido" e il PEP deve completare la transizione in modo asincrono chiamando RequestWorker, come descritto nel paragrafo precedente.

Per altre informazioni sulle condizioni attive e inattive, vedere Risparmio energia a livello di componente.

Per una notifica di PEP_DPM_COMPONENT_ACTIVE, la routine AcceptDeviceNotification viene chiamata in IRQL <= DISPATCH_LEVEL.

PEP_DPM_WORK

Notifica (PEP_DPM_WORK)

Valore PEP_DPM_WORK.

Dati (PEP_DPM_WORK)

Puntatore a una struttura PEP_WORK .

Inviato al PEP una volta ogni volta che il PEP chiama la routine RequestWorker per richiedere un elemento di lavoro dal framework di risparmio energia di Windows (PoFx).

Dopo che pep chiama la routine RequestWorker per richiedere un elemento di lavoro, PoFx risponde inviando il PEP una notifica di PEP_DPM_WORK. Tuttavia, questa notifica non viene inviata fino a quando non sono disponibili le risorse (ovvero il thread di lavoro) necessario per elaborare l'elemento di lavoro. In questo modo, PoFx garantisce che la richiesta di lavoro che il PEP passa a PoFx durante la notifica non può mai non riuscire a causa della mancanza di risorse.

Per inviare una notifica di PEP_DPM_WORK, il sistema operativo chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_WORK e il parametro Data punta a una struttura PEP_WORK. All'ingresso, il PEP deve presupporre che il contenuto di questa struttura non sia inizializzato. Per gestire questa notifica, il PEP deve impostare il membro WorkInformation in modo che punti a una struttura PEP_WORK_INFORMATION allocata da PEP che descrive il lavoro richiesto. Inoltre, il PEP deve impostare il membro NeedWork della struttura PEP_WORK su TRUE per verificare che il PEP abbia gestito la notifica PEP_DPM_WORK e che il membro WorkInformation punti a una struttura di PEP_WORK_INFORMATION valida. Se il PEP non riesce a gestire la notifica o non è in grado di allocare la struttura di PEP_WORK_INFORMATION, il PEP deve impostare il membro WorkInformation su NULL e impostare il membro NeedWork su FALSE.

Per una notifica di PEP_DPM_WORK, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_POWER_CONTROL_REQUEST

Notifica (PEP_DPM_POWER_CONTROL_REQUEST)

Valore PEP_DPM_POWER_CONTROL_REQUEST.

Dati (PEP_DPM_POWER_CONTROL_REQUEST)

Puntatore a una struttura PEP_POWER_CONTROL_REQUEST .

Informa il PEP che un driver ha chiamato l'API PoFxPowerControl per inviare un codice di controllo direttamente al PEP.

Il framework di risparmio energia di Windows (PoFx) invia questa notifica al PEP quando un driver chiama l'API PoFxPowerControl per inviare un codice di controllo direttamente al PEP. Il puntatore dati di notifica in questo caso punta alla struttura PEP_POWER_CONTROL_REQUEST

Le richieste di controllo alimentazione e la relativa semantica vengono definite tra il writer PEP e il proprietario della classe del dispositivo. In genere, tale interfaccia è per la comunicazione specifica della classe di dispositivi che non viene acquisita nel framework di risparmio energia generalizzato. Ad esempio, il controller UART può comunicare informazioni sulla velocità in baud al PEP per modificare alcune guide/divisori dell'orologio della piattaforma e tale comunicazione probabilmente sfrutta una richiesta di controllo alimentazione.

! [NOTA] Il PEP può richiedere solo di inviare un codice di controllo al dispositivo dopo che riceve una notifica di PEP_DPM_DEVICE_STARTED o PEP_DPM_POWER_CONTROL_REQUEST.

Per una notifica di PEP_DPM_POWER_CONTROL_REQUEST, la routine AcceptDeviceNotification viene chiamata in IRQL <= DISPATCH_LEVEL.

PEP_DPM_POWER_CONTROL_COMPLETE

Notifica (PEP_DPM_POWER_CONTROL_COMPLETE)

Valore PEP_DPM_POWER_CONTROL_COMPLETE.

Dati (PEP_DPM_POWER_CONTROL_COMPLETE)

Puntatore a una struttura PEP_POWER_CONTROL_COMPLETE .

Informa il PEP che un driver ha completato una richiesta di controllo alimentazione che è stata precedentemente emessa dal PEP

Il framework di risparmio energia di Windows (PoFx) invia questa notifica al PEP quando un driver completa una richiesta di controllo alimentazione rilasciata in precedenza dal PEP.

! [NOTA] Il PEP può ignorare questa notifica se non emette richieste di controllo alimentazione.

Per una notifica di PEP_DPM_POWER_CONTROL_COMPLETE, la routine AcceptDeviceNotification viene chiamata in IRQL <= DISPATCH_LEVEL.

PEP_DPM_SYSTEM_LATENCY_UPDATE

Notifica (PEP_DPM_SYSTEM_LATENCY_UPDATE)

Valore PEP_DPM_SYSTEM_LATENCY_UPDATE.

Dati (PEP_DPM_SYSTEM_LATENCY_UPDATE)

Puntatore a una struttura PEP_SYSTEM_LATENCY .

Informa il PEP che il sistema operativo ha aggiornato la tolleranza di latenza complessiva del sistema.

Il framework di risparmio energia di Windows (PoFx) invia questa notifica quando il sistema operativo aggiorna la tolleranza di latenza complessiva del sistema.

Nelle versioni precedenti di PoFx questa notifica è stata usata dal PEP per la selezione dello stato di inattività del processore e della piattaforma. Con le interfacce PEP più recenti, il processo di selezione è interamente gestito dal sistema operativo e di conseguenza questa notifica non è più utile. È incluso qui per completezza e il PEP dovrebbe ignorarlo.

Per inviare una notifica di PEP_DPM_SYSTEM_LATENCY_UPDATE, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. Per questa notifica, la routine AcceptDeviceNotification viene chiamata in IRQL <= DISPATCH_LEVEL.

PEP_DPM_DEVICE_STARTED

Notifica (PEP_DPM_DEVICE_STARTED)

Valore PEP_DPM_DEVICE_STARTED.

Dati (PEP_DPM_DEVICE_STARTED)

Puntatore a una struttura PEP_DEVICE_STARTED .

Informa il PEP che il dispositivo è stato avviato in modo che sia disponibile per ricevere transazioni di controllo alimentazione.

Gli stack di dispositivi si registrano con il sistema operativo per il risparmio energia di runtime in un processo in due passaggi. Il driver chiama prima PoFxRegisterDevice per fornire informazioni sul numero di componenti, sui relativi stati di inattività e sugli attributi corrispondenti. In risposta a questa chiamata, il PEP riceve una notifica di PEP_DPM_REGISTER_DEVICE.

Al termine della registrazione, il driver ha la possibilità di inizializzare i componenti, ad esempio impostare i requisiti attivi, aggiornare i requisiti di latenza, aggiornare la residenza inattiva prevista e così via. Dopo che il driver ha completato tutte le attività di inizializzazione, invia una notifica al risparmio energia chiamando PoFxStartDevicePowerManagement. In risposta, il PEP riceverà una notifica di PEP_DPM_DEVICE_STARTED. A questo punto, il dispositivo viene considerato completamente abilitato per il risparmio energia in fase di esecuzione.

Di conseguenza, il PEP non può inviare richieste di controllo dell'alimentazione al driver, a meno che non abbia ricevuto prima una notifica di PEP_DPM_DEVICE_STARTED o una notifica di PEP_DPM_POWER_CONTROL_REQUEST.

Nota

Il PEP può ignorare questa notifica se non emette richieste di controllo alimentazione.

Per una notifica di PEP_DPM_DEVICE_STARTED, la routine AcceptDeviceNotification viene chiamata in IRQL <= DISPATCH_LEVEL.

PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE

Notifica (PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE)

Valore PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE.

Dati (PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE)

Puntatore a una struttura PEP_NOTIFY_COMPONENT_IDLE_STATE .

Inviato a PEP quando il sistema operativo rilascia una transizione di stato inattiva per un determinato componente.

Il framework di risparmio energia di Windows (PoFx) invia questa notifica quando il sistema operativo genera una transizione di stato inattiva per un determinato componente.

Importante

Il PEP deve gestire questa notifica.

Per ogni transizione di stato inattiva, il PEP riceve una notifica prima e dopo la notifica del driver. Il PEP distingue tra le notifiche pre e post esaminando il membro DriverNotified della struttura PEP_NOTIFY_COMPONENT_IDLE_STATE. Per una notifica successiva, il membro DriverNotified sarà TRUE.

Le pre-notifiche vengono in genere usate durante la transizione a F0. In questo caso il PEP potrebbe dover riabilitare l'orologio o le risorse di alimentazione in modo che quando il driver gestisce la notifica F0, l'hardware è disponibile. Di conseguenza, le notifiche successive vengono in genere usate durante la transizione da F0 a uno stato di inattività più profondo. Dopo che un driver ha gestito la notifica dello stato di inattività, il PEP può disattivare in modo sicuro l'orologio e le risorse di alimentazione.

La gestione di una transizione di stato inattiva per un determinato componente può richiedere un'elaborazione asincrona se l'operazione richiede una quantità significativa di tempo o irQL è troppo elevata per completare la transizione in modo sincrono. Di conseguenza, il PEP può completare questa notifica in modo sincrono o asincrono impostando rispettivamente il membro Completato su TRUE o FALSE.

Se la notifica deve essere completata in modo asincrono, il PEP invia una notifica al sistema operativo al completamento richiedendo un ruolo di lavoro (vedere RequestWorker) e compilando la struttura di informazioni di lavoro fornita nell'PEP_DPM_WORK notifica risultante usando un tipo di lavoro pepWorkCompleteIdleState.

Per inviare una notifica di PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. Questa routine viene chiamata in IRQL <= DISPATCH_LEVEL.

PEP_DPM_REGISTER_DEBUGGER

Notifica (PEP_DPM_REGISTER_DEBUGGER)

Valore PEP_DPM_REGISTER_DEBUGGER.

Dati (PEP_DPM_REGISTER_DEBUGGER)

Puntatore a una struttura PEP_REGISTER_DEBUGGER .

Informa il PEP che un dispositivo registrato può essere usato come porta di debug.

Il framework di risparmio energia di Windows (PoFx) invia questa notifica per notificare al PEP che un dispositivo registrato può essere usato come porta di debug.

Per una notifica di PEP_DPM_REGISTER_DEBUGGER, la routine AcceptDeviceNotification viene chiamata in IRQL <= DISPATCH_LEVEL.

PEP_DPM_LOW_POWER_EPOCH

Notifica (PEP_DPM_LOW_POWER_EPOCH)

Valore PEP_DPM_LOW_POWER_EPOCH.

Dati (PEP_DPM_LOW_POWER_EPOCH)

Puntatore a una struttura PEP_LOW_POWER_EPOCH .

Questa notifica è deprecata.

PEP_DPM_REGISTER_CRASHDUMP_DEVICE

Notifica (PEP_DPM_REGISTER_CRASHDUMP_DEVICE)

Valore PEP_DPM_REGISTER_CRASHDUMP_DEVICE.

Dati (PEP_DPM_REGISTER_CRASHDUMP_DEVICE)

Puntatore a una struttura PEP_REGISTER_CRASHDUMP_DEVICE .

Il framework di risparmio energia di Windows (PoFx) invia questa notifica quando un dispositivo viene registrato come gestore di arresto anomalo del sistema.

La possibilità di generare un dump della memoria (crashdump) quando il sistema rileva un errore irreversibile è prezioso per determinare la causa dell'arresto anomalo. Windows, per impostazione predefinita, genererà un crashdump quando il sistema rileva un controllo di bug. In questo contesto, il sistema si trova in un ambiente operativo molto vincolato con interrupt disabilitati e irQL di sistema in HIGH_LEVEL.

Poiché i dispositivi coinvolti nella scrittura di un arresto anomalo del sistema operativo su disco (ad esempio, controller di archiviazione, controller PCI e così via) possono essere spenti al momento dell'arresto anomalo, il sistema operativo deve chiamare il PEP per accendere il dispositivo. Di conseguenza, il sistema operativo richiede un callback (PowerOnDumpDeviceCallback) dal PEP per ogni dispositivo nello stack crashdump e richiama il callback durante la generazione del file di dump.

Dato l'ambiente vincolato al momento dell'arresto anomalo, il callback fornito dal PEP non deve accedere al codice di paging, bloccare gli eventi o richiamare qualsiasi codice che possa eseguire la stessa operazione. Inoltre, il processo di alimentazione di tutte le risorse necessarie non può basarsi su interrupt. Di conseguenza, il PEP potrebbe dover ripristinare il polling se deve attendere l'abilitazione di varie risorse. Se il PEP non può accendere il dispositivo con questi vincoli, non deve gestire la notifica o non fornire una routine di callback.

Per inviare una notifica di PEP_DPM_REGISTER_CRASHDUMP_DEVICE, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. Per questa notifica, la routine AcceptDeviceNotification viene chiamata in IRQL <= HIGH_LEVEL.

PEP_DPM_DEVICE_IDLE_CONSTRAINTS

Notifica (PEP_DPM_DEVICE_IDLE_CONSTRAINTS)

Valore PEP_DPM_DEVICE_IDLE_CONSTRAINTS.

Dati (PEP_DPM_DEVICE_IDLE_CONSTRAINTS)

Puntatore a una struttura PEP_DEVICE_PLATFORM_CONSTRAINTS . Inviato a PEP per eseguire una query per individuare le dipendenze tra stati D del dispositivo e stati di inattività della piattaforma.

Il framework di risparmio energia di Windows (PoFx) invia questa notifica al PEP per eseguire una query sulle dipendenze tra stati D-dispositivo e stati di inattività della piattaforma. Il PEP usa questa notifica per restituire lo stato D più chiaro in cui il dispositivo può ancora trovarsi e immettere ogni stato di inattività della piattaforma. Il sistema operativo garantirà che il dispositivo sia nello stato D minimo prima di immettere uno stato di inattività della piattaforma associato. Se uno stato di inattività della piattaforma non dipende da questo dispositivo in qualsiasi stato D, il PEP deve specificare uno stato D minimo di PowerDeviceD0. Se nessun stato di inattività della piattaforma dipende da questo dispositivo in un particolare stato D, questa notifica può essere ignorata.

Questa notifica viene inviata a ogni dispositivo dopo che il PEP ha ricevuto la notifica di PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES.

Per inviare una notifica di PEP_DPM_DEVICE_IDLE_CONSTRAINTS, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_DEVICE_IDLE_CONSTRAINTS e il parametro Data punta a una struttura PEP_DEVICE_PLATFORM_CONSTRAINTS.

Per una notifica di PEP_DPM_DEVICE_IDLE_CONSTRAINTS, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = DISPATCH_LEVEL.

PEP_DPM_COMPONENT_IDLE_CONSTRAINTS

Notifica (PEP_DPM_COMPONENT_IDLE_CONSTRAINTS)

Valore PEP_DPM_COMPONENT_IDLE_CONSTRAINTS.

Dati (PEP_DPM_COMPONENT_IDLE_CONSTRAINTS)

Puntatore a una struttura PEP_COMPONENT_PLATFORM_CONSTRAINTS .

Inviato a PEP per eseguire una query per individuare le dipendenze tra gli stati di inattività del componente e gli stati di inattività della piattaforma.

Il framework di risparmio energia di Windows (PoFx) invia questa notifica al PEP per eseguire una query sulle dipendenze tra gli stati di inattività del componente e gli stati di inattività della piattaforma. Il PEP usa questa notifica per restituire lo stato F più chiaro in cui il componente può ancora trovarsi e immettere ogni stato di inattività della piattaforma. Il sistema operativo garantirà che il componente sia nello stato F minimo prima di entrare in uno stato di inattività della piattaforma associato. Se uno stato di inattività della piattaforma non dipende da questo componente in qualsiasi stato F, il PEP deve specificare uno stato F minimo pari a 0. Se nessun stato di inattività della piattaforma dipende da questo componente in un particolare stato F, questa notifica può essere ignorata.

I vincoli di inattività del dispositivo più profondi di D0 sono più vincolanti rispetto agli stati di inattività del componente per i componenti nel dispositivo. Per un determinato indice di stato di inattività della piattaforma, se il dispositivo ha specificato un vincolo di inattività del dispositivo, il vincolo di inattività del componente corrispondente per tutti i componenti associati al dispositivo viene ignorato.

Questa notifica viene inviata a ogni componente in ogni dispositivo dopo che il PEP riceve una notifica di PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES.

Per inviare una notifica di PEP_DPM_COMPONENT_IDLE_CONSTRAINTS, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. La routine AcceptDeviceNotification viene sempre chiamata in IRQL = DISPATCH_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES

Notifica (PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES)

Valore PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES.

Dati (PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES)

Puntatore a una struttura PEP_QUERY_COMPONENT_PERF_CAPABILITIES .

Informa il PEP di essere sottoposto a query per il numero di set di stato delle prestazioni (P-state) definiti per un componente.

Per inviare una notifica di PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES e il parametro Data punta a una struttura PEP_QUERY_COMPONENT_PERF_CAPABILITIES.

Per una notifica di PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_SET

Notifica (PEP_DPM_QUERY_COMPONENT_PERF_SET)

Valore PEP_DPM_QUERY_COMPONENT_PERF_SET.

Dati (PEP_DPM_QUERY_COMPONENT_PERF_SET)

Puntatore a una struttura PEP_QUERY_COMPONENT_PERF_SET .

Informa il PEP di essere sottoposto a query per informazioni su un set di valori di stato delle prestazioni (P-state set) per un componente.

Per inviare una notifica di PEP_DPM_QUERY_COMPONENT_PERF_SET, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_QUERY_COMPONENT_PERF_SET e il parametro Data punta a una struttura PEP_QUERY_COMPONENT_PERF_SET.

Per una notifica di PEP_DPM_QUERY_COMPONENT_PERF_SET, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME

Notifica (OPEP_DPM_QUERY_COMPONENT_PERF_SET_NAME)

Valore PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME.

Dati (OPEP_DPM_QUERY_COMPONENT_PERF_SET_NAME)

Puntatore a una struttura PEP_QUERY_COMPONENT_PERF_SET_NAME .

Informa il PEP di essere sottoposto a query per informazioni su un set di valori di stato delle prestazioni (P-state set) per un componente.

Per inviare una notifica di PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME e il parametro Data punta a una struttura PEP_QUERY_COMPONENT_PERF_SET_NAME.

Per una notifica di PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_STATES

Notifica (PEP_DPM_QUERY_COMPONENT_PERF_STATES)

Valore PEP_DPM_QUERY_COMPONENT_PERF_STATES.

Dati (PEP_DPM_QUERY_COMPONENT_PERF_STATES)

Puntatore a una struttura PEP_QUERY_COMPONENT_PERF_STATES .

Informa il PEP di essere sottoposto a query per un elenco di valori di stato delle prestazioni discreti (P-state) per un set di stato P specificato.

Per inviare una notifica di PEP_DPM_QUERY_COMPONENT_PERF_STATES, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata, il valore del parametro Notification è PEP_DPM_QUERY_COMPONENT_PERF_STATES e il parametro Data punta a una struttura PEP_QUERY_COMPONENT_PERF_STATES.

Per una notifica di PEP_DPM_QUERY_COMPONENT_PERF_STATES, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_REGISTER_COMPONENT_PERF_STATES

Notifica (PEP_DPM_REGISTER_COMPONENT_PERF_STATES)

Valore PEP_DPM_REGISTER_COMPONENT_PERF_STATES.

Dati (PEP_DPM_REGISTER_COMPONENT_PERF_STATES)

Puntatore a una struttura PEP_REGISTER_COMPONENT_PERF_STATES .

Informa il PEP sugli stati delle prestazioni (P-states) del componente specificato.

Per inviare una notifica di PEP_DPM_REGISTER_COMPONENT_PERF_STATES, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_REGISTER_COMPONENT_PERF_STATES e il parametro Data punta a una struttura PEP_REGISTER_COMPONENT_PERF_STATES.

Per una notifica di PEP_DPM_REGISTER_COMPONENT_PERF_STATES, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_REQUEST_COMPONENT_PERF_STATE

Notifica (PEP_DPM_REQUEST_COMPONENT_PERF_STATE)

Valore PEP_DPM_REQUEST_COMPONENT_PERF_STATE.

Dati (PEP_DPM_REQUEST_COMPONENT_PERF_STATE)

Puntatore a una struttura PEP_REQUEST_COMPONENT_PERF_STATE.

Informa il PEP che una o più modifiche dello stato delle prestazioni (P-state) sono richieste dal framework di risparmio energia di Windows (PoFx).

Per inviare una notifica di PEP_DPM_REQUEST_COMPONENT_PERF_STATE, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_REQUEST_COMPONENT_PERF_STATE e il parametro Data punta a una struttura PEP_REQUEST_COMPONENT_PERF_STATE.

Per una notifica di PEP_DPM_REQUEST_COMPONENT_PERF_STATE, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE

Notifica (PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE)

Valore PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE.

Dati (PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE)

Puntatore a una struttura PEP_QUERY_CURRENT_COMPONENT_PERF_STATE.

Informa il PEP di essere sottoposto a query per informazioni sullo stato P corrente nel set di stato P specificato.

Per inviare una notifica di PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. In questa chiamata il valore del parametro Notification è PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE e il parametro Data punta a una struttura PEP_QUERY_CURRENT_COMPONENT_PERF_STATE.

Per una notifica di PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS

Notifica (PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS)

Valore PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS.

Dati (PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS)

Puntatore a una struttura PEP_DEBUGGER_TRANSITION_REQUIREMENTS .

Inviato al PEP per eseguire una query per il set di stati coordinati o della piattaforma che richiedono che il debugger sia spento.

Il framework di risparmio energia di Windows (PoFx) invia questa notifica al PEP per eseguire una query per il set di stati coordinati o della piattaforma che richiedono che il debugger sia spento. Se questa notifica viene accettata, il sistema operativo eseguirà tutte le transizioni di alimentazione del debugger per il PEP e il PEP potrebbe non usare TransitionCriticalResource per gestire il debugger.

Questa notifica viene inviata a ogni dispositivo debugger dopo che il PEP ha accettato una notifica di PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE o PEP_NOTIFY_PPM_QUERY_COORDINATED_STATES.

Per inviare una notifica di PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. Per questa notifica, la routine AcceptDeviceNotification viene sempre chiamata in IRQL = DISPATCH_LEVEL.

PEP_DPM_QUERY_SOC_SUBSYSTEM

Notifica (PEP_DPM_QUERY_SOC_SUBSYSTEM)

Valore PEP_DPM_QUERY_SOC_SUBSYSTEM.

Dati (PEP_DPM_QUERY_SOC_SUBSYSTEM)

Puntatore a una struttura PEP_QUERY_SOC_SUBSYSTEM .

Inviato al PEP per raccogliere informazioni di base su un particolare sistema in un sottosistema soC (Chip).

Il framework di risparmio energia di Windows (PoFx) invia questa notifica al PEP dopo l'inizializzazione degli stati di inattività della piattaforma per raccogliere informazioni di base su un particolare sottosistema SoC. Un PEP che non implementa l'accounting del sottosistema SoC o non lo implementa per lo stato di inattività della piattaforma specificato, restituisce FALSE. Questo indica al sistema operativo di interrompere l'invio di notifiche di diagnostica al PEP per questo stato di inattività della piattaforma.

SubsystemCount e MetadataCount di un sottosistema possono cambiare con gli aggiornamenti PEP/BSP. SubsystemIndex può cambiare ogni volta che il sistema operativo viene avviato.

Importante

Il PEP non può ignorare questa notifica. Il PEP riceve questa notifica perché ha risposto alla notifica di PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT per questo PlatformIdleStateIndex con un subsystemCount diverso da zero.

Per inviare una notifica di PEP_DPM_QUERY_SOC_SUBSYSTEM, PoFx chiama la routine di callback AcceptDeviceNotification di PEP in IRQL < DISPATCH_LEVEL.

PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME

Notifica (PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME)

Valore PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME.

Dati (PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME)

Puntatore a una struttura PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME .

Inviato al PEP quando il sistema operativo vuole raccogliere il tally del momento in cui un particolare sistema in un sottosistema soC (Chip) ha bloccato l'ingresso in un particolare stato di inattività della piattaforma senza la conoscenza del sistema operativo.

In genere il sistema operativo chiama questa notifica alla fine di una sessione di standby connessa estesa in cui il sistema operativo ha tentato di immettere lo stato di inattività della piattaforma specificato. The PEP_QUERY_SOC_SUBSYSTEM_COUNT. Il valore SubsystemCount, compilato in precedenza da PEP durante l'inizializzazione del sottocomponente, specifica il numero di notifiche PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME inviate al PEP alla volta. Un pep può ricevere più notifiche PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME per un determinato sottosistema. Queste notifiche possono essere o meno interleaved con le notifiche di PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING.

Importante

Il PEP non può ignorare questa notifica. Il PEP riceve questa notifica perché ha risposto alla notifica di PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT per questo PlatformIdleStateIndex con un subsystemCount diverso da zero.

Per inviare una notifica di PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME, PoFx chiama la routine di callback AcceptDeviceNotification di PEP in IRQL < DISPATCH_LEVEL.

PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT

Notifica (PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT)

Valore PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT.

Dati (PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT)

Puntatore a una struttura PEP_QUERY_SOC_SUBSYSTEM_COUNT .

Inviato al PEP dopo che gli stati di inattività della piattaforma sono stati inizializzati per indicare al sistema operativo se pep supporta il sistema in un sottosistema soC (Chip) che rappresenta uno stato di inattività della piattaforma specificato.

Si tratta della prima notifica diagnostica del sottosistema SoC inviata al PEP. Un PEP che non implementa la contabilità del sottosistema SoC o non lo implementa per lo stato di inattività della piattaforma specificato, restituisce FALSE, nel qual caso il sistema operativo non invierà più le notifiche di diagnostica del sottosistema SOC per questo stato di inattività della piattaforma.

Nota

Il PEP può ignorare questa notifica se non implementa le notifiche di diagnostica SoC per lo stato di inattività della piattaforma specificato.

Per inviare una notifica di PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT, PoFx chiama la routine di callback AcceptDeviceNotification di PEP in IRQL < DISPATCH_LEVEL.

PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA

Notifica (PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA)

Valore PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA.

Dati (PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA)

Puntatore a una struttura PEP_QUERY_SOC_SUBSYSTEM_METADATA.

Inviato al PEP per raccogliere metadati facoltativi sul sottosistema il cui tempo di blocco è stato appena sottoposto a query.

Questa notifica viene in genere inviata al PEP immediatamente dopo una notifica di PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME. Una notifica PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA raccoglie tutte le coppie di metadati chiave-valore che descrivono il sottosistema.

Importante

Il PEP non può ignorare questa notifica. Il PEP riceve questa notifica perché ha risposto alla notifica di PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT per questo PlatformIdleStateIndex con un subsystemCount diverso da zero.

Per inviare una notifica di PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA, PoFx chiama la routine di callback AcceptDeviceNotification di PEP. Per questa notifica, la routine AcceptDeviceNotification viene chiamata in IRQL < DISPATCH_LEVEL.

PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING

Notifica (PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING)

Valore PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING.

Dati (PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING)

Puntatore a un puntatore a una struttura PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING . Struttura.

Inviato al PEP per cancellare il tempo di blocco del sottosistema e la contabilità dei metadati, eseguire eventuali inizializzazione aggiuntive necessarie e riavviare la contabilità.

Il framework di risparmio energia di Windows (PoFx) invia questa notifica al PEP ogni volta che tutti i sottosistemi vengono inizializzati con il sistema operativo. In genere, questa notifica viene chiamata quando il sistema operativo inizia un nuovo periodo di analisi intorno a ciò che mantiene il sistema su un chip (SoC) fuori dallo stato di inattività della piattaforma specificato (destinazione DRIPS al momento dell'ingresso in standby connesso). Il sistema operativo invia questa notifica solo per gli stati di inattività della piattaforma per i quali il PEP ha inizializzato uno o più sottosistemi SoC.

Per inviare una notifica di PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING, PoFx chiama la routine di callback AcceptDeviceNotification di PEP in IRQL < DISPATCH_LEVEL.