Códigos de control de energía PPM

Los códigos de control de energía descritos en este tema se usan en complementos de extensión de plataforma (PEP). Una solicitud de control de energía es similar a una solicitud de control de E/S (IOCTL). A diferencia de un IOCTL, sin embargo, una solicitud de control de energía se envía directamente al marco de administración de energía de Ventana (PoFx) y no se observa mediante otros controladores de dispositivos de la pila de dispositivos.

A continuación se muestran los códigos de control de energía PPM:

Código Sintaxis Descripción
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);

El PEP usa el código para consultar el marco de administración de energía de Windows (PoFx) para obtener información sobre la página de estacionamiento asignada a un procesador.

Para determinar la página de estacionamiento de un procesador, el complemento de extensión de plataforma (PEP) para este procesador envía una solicitud de control de energía PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE a PoFx.

Para iniciar esta solicitud de control de energía, el PEP llama primero a la rutina RequestWorker para informar a PoFx de que el PEP tiene un elemento de trabajo que enviar. PoFx responde a esta llamada enviando una notificación PEP_DPM_WORK al PEP. El PEP responde enviando una solicitud de trabajo de control de energía para la información de la página de estacionamiento. Esta solicitud incluye una estructura de PEP_WORK_INFORMATION asignada por PEP en la que el miembro WorkType se establece en PepWorkRequestPowerControl y el miembro PowerControl apunta a una estructura de PEP_WORK_POWER_CONTROL asignada por PEP. El miembro PowerControlCode de la estructura PEP_WORK_POWER_CONTROL se establece en PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE. El miembro InBuffer de esta estructura debe ser NULL y el miembro OutBuffer debe apuntar a una estructura de PEP_PPM_CONTEXT_QUERY_PARKING_PAGE asignada por PEP. En respuesta a esta solicitud de control de energía, PoFx escribe las direcciones virtuales y físicas de la página de estacionamiento en la estructura de PEP_PPM_CONTEXT_QUERY_PARKING_PAGE.

La solicitud de control de energía de PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE es específica de Arm y no es compatible con procesadores x86 y x64. En un sistema multiprocesador Arm, una página de estacionamiento es un bloque de memoria de 4 kilobytes que el sistema operativo usa como buzón para controlar un procesador que se inicia desde un estado inactivo. Un PEP puede usar parte del buzón para almacenar datos de contexto específicos del procesador. Para obtener más información, vea el documento titulado "Inicio multiprocesador para plataformas arm" en 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);

El PEP usa el código para notificar al marco de administración de energía de Windows (PoFx) que los límites de rendimiento del procesador deben cambiar para adaptarse a restricciones externas (presupuesto de energía, restricciones térmicas, fuente de energía, etc.).

No se usa ningún búfer de entrada o salida con este código de control.

Para iniciar esta solicitud de control de energía, el PEP llama primero a la rutina RequestWorker para informar a PoFx de que el PEP tiene un elemento de trabajo que enviar. PoFx responde a esta llamada enviando una notificación PEP_DPM_WORK al PEP. El PEP responde enviando una solicitud de trabajo de control de energía para un cambio de restricción de rendimiento. Esta solicitud incluye una estructura de PEP_WORK_INFORMATION asignada por PEP en la que el miembro WorkType se establece en PepWorkRequestPowerControl y el miembro PowerControl apunta a una estructura de PEP_WORK_POWER_CONTROL asignada por PEP. El miembro PowerControlCode de la estructura PEP_WORK_POWER_CONTROL se establece en GUID_PPM_PERF_CONSTRAINT_CHANGE. Los miembros InBuffer y OutBuffer de esta estructura deben ser NULL. En respuesta a esta solicitud de control de energía, PoFx enviará una notificación de PEP_NOTIFY_PPM_PERF_CONSTRAINTS al PEP para obtener los nuevos límites de rendimiento del procesador.