Condividi tramite


Codici di controllo dell'alimentazione PPM

I codici di controllo dell'alimentazione descritti in questo argomento vengono usati dai plug-in dell'estensione della piattaforma (PEP). Una richiesta di controllo alimentazione è simile a una richiesta di controllo I/O (IOCTL). A differenza di un IOCTL, tuttavia, una richiesta di controllo alimentazione viene inviata direttamente al framework di gestione energia finestra (PoFx) e non viene osservata da altri driver di dispositivo nello stack di dispositivi.

Di seguito sono riportati i codici di controllo dell'alimentazione PPM:

Codice Sintassi Descrizione
PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE

{38BD8901-AB20-4908-ABAA-AC34674BDFF3}

DEFINE_GUID(PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE,

0x38bd8901, 0xab20, 0x4908, 0xab, 0xaa, 0xac, 0x34, 0x67, 0x4b, 0xdf, 0xf3);

Il codice viene usato dal PEP per eseguire query sul framework di Gestione energia windows (PoFx) per informazioni sulla pagina di parcheggio assegnata a un processore.

Per determinare la pagina di parcheggio per un processore, il plug-in di estensione della piattaforma (PEP) per questo processore invia una richiesta di controllo energia PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE a PoFx.

Per avviare questa richiesta di controllo energia, il PEP chiama prima la routine RequestWorker per informare PoFx che il PEP ha un elemento di lavoro da inviare. PoFx risponde a questa chiamata inviando una notifica PEP_DPM_WORK al PEP. IL PEP risponde inviando una richiesta di lavoro di controllo energia per le informazioni sulla pagina del parcheggio. Questa richiesta include una struttura PEP_WORK_INFORMATION allocata da PEP in cui il membro WorkType è impostato su PepWorkRequestPowerControl e il membro PowerControl punta a una struttura di PEP_WORK_POWER_CONTROL allocata da PEP. Il membro PowerControlCode della struttura PEP_WORK_POWER_CONTROL è impostato su PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE. Il membro InBuffer di questa struttura deve essere NULL e il membro OutBuffer deve puntare a una struttura PEP_PPM_CONTEXT_QUERY_PARKING_PAGE allocata da PEP. In risposta a questa richiesta di controllo alimentazione, PoFx scrive gli indirizzi virtuali e fisici della pagina di parcheggio nella struttura PEP_PPM_CONTEXT_QUERY_PARKING_PAGE.

La richiesta di controllo alimentazione PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE è specifica di Arm e non è supportata per processori x86 e x64. In un sistema multiprocessore arm, una pagina di parcheggio è un blocco di memoria a 4 kilobyte usato dal sistema operativo per controllare un processore che viene avviato da uno stato inattiva. Un PEP potrebbe usare una parte della cassetta postale per archiviare dati di contesto specifici del processore. Per altre informazioni, vedere il documento denominato "Avvio multiprocessore per piattaforme Arm" all'indirizzo https://www.acpica.org/related-documents.

GUID_PPM_PERF_CONSTRAINT_CHANGE

{29181FA1-4BF3-4c2e-B314-A6D226322B00}

DEFINE_GUID(GUID_PPM_PERF_CONSTRAINT_CHANGE,

0x29181fa1, 0x4bf3, 0x4c2e, 0xb3, 0x14, 0xa6, 0xd2, 0x26, 0x32, 0x2b, 0x0);

Il codice viene usato dal PEP per notificare al framework di gestione energia di Windows (PoFx) che i limiti delle prestazioni del processore devono cambiare per soddisfare vincoli esterni (budget di alimentazione, vincoli di energia, fonte di alimentazione e così via).

Nessun buffer di input o output viene usato con questo codice di controllo.

Per avviare questa richiesta di controllo energia, il PEP chiama prima la routine RequestWorker per informare PoFx che il PEP ha un elemento di lavoro da inviare. PoFx risponde a questa chiamata inviando una notifica PEP_DPM_WORK al PEP. IL PEP risponde inviando una richiesta di lavoro del controllo energia per una modifica del vincolo di prestazioni. Questa richiesta include una struttura PEP_WORK_INFORMATION allocata da PEP in cui il membro WorkType è impostato su PepWorkRequestPowerControl e il membro PowerControl punta a una struttura di PEP_WORK_POWER_CONTROL allocata da PEP. Il membro PowerControlCode della struttura PEP_WORK_POWER_CONTROL è impostato su GUID_PPM_PERF_CONSTRAINT_CHANGE. Entrambi i membri di InBuffer e OutBuffer di questa struttura devono essere NULL. In risposta a questa richiesta di controllo energia, PoFx invierà una notifica PEP_NOTIFY_PPM_PERF_CONSTRAINTS al PEP per ottenere i nuovi limiti di prestazioni del processore.