Notificaciones de administración de energía de dispositivos (DPM)

Cada notificación de administración de energía de dispositivos (DPM) que recibe la rutina de devolución de llamada AcceptDeviceNotification del PEP va acompañada de un parámetro Notification que indica el tipo de notificación y un parámetro Data que apunta a una estructura de datos que contiene la información del tipo de notificación especificado.

En esta llamada, el parámetro Notification se establece en un valor constante PEP_DPM_XXX que indica el tipo de notificación. El parámetro Data apunta a un tipo de estructura PEP_XXX asociado a este tipo de notificación.

Identificador de notificación Valor Estructura asociada
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

Identificadores de notificación

La rutina de devolución de llamada AcceptDeviceNotification usa los siguientes identificadores de notificación de DPM.

PEP_DPM_PREPARE_DEVICE

Notificación (PEP_DPM_PREPARE_DEVICE)

Valor PEP_DPM_PREPARE_DEVICE.

Datos (PEP_DPM_PREPARE_DEVICE)

Puntero a una estructura de PEP_PREPARE_DEVICE . Indica al PEP que posee el dispositivo especificado para configurar el dispositivo para que funcione en el estado de alimentación del dispositivo D0 (en funcionamiento).

El marco de administración de energía de Windows (PoFx) envía esta notificación al PEP antes de que el sistema operativo inicie la pila de controladores de un dispositivo por primera vez. Esta notificación permite que el PEP active los recursos externos de encendido o reloj necesarios para operar el dispositivo.

Para enviar una notificación PEP_DPM_PREPARE_DEVICE, el sistema operativo llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_PREPARE_DEVICE y el parámetro Data apunta a una estructura PEP_PREPARE_DEVICE. En la entrada, el miembro DeviceId de esta estructura es una cadena de identificación de dispositivo que identifica de forma única un dispositivo. Antes de devolverlo, el PEP establece el miembro DeviceAccepted de esta estructura en TRUE para reclamar la propiedad del dispositivo o en FALSE para indicar que no posee el dispositivo.

El PEP que posee la administración de energía de un dispositivo es responsable de administrar los recursos de encendido y reloj que son externos al dispositivo y que son necesarios para operar el dispositivo. Este PEP habilita la señal del reloj y la alimentación en el dispositivo en respuesta a una notificación de PEP_DPM_PREPARE_DEVICE, y quita la señal del reloj y la alimentación del dispositivo en respuesta a una notificación de PEP_DPM_ABANDON_DEVICE.

En la tabla siguiente se muestran las condiciones previas que están en vigor cuando este sistema operativo envía una notificación de PEP_DPM_PREPARE_DEVICE al PEP y las condiciones posteriores que deben estar en vigor después de que el PEP controle esta notificación para un dispositivo que posee.

Preconditions Condiciones posteriores
El dispositivo puede estar en cualquier estado de alimentación. Si el PEP reclama la propiedad del dispositivo, el dispositivo y todos sus componentes deben estar activados y los relojes del dispositivo deben anularse.
El PEP puede recibir PEP_DPM_PREPARE_DEVICE notificaciones para varios dispositivos, ya que el administrador de energía intenta encontrar propietarios de PEP para estos dispositivos. El PEP debe establecer el miembro DeviceAccepted de la estructura de PEP_PREPARE_DEVICE en FALSE para todos los dispositivos que el PEP no posee.

No se envían notificaciones de PEP_DPM_PREPARE_DEVICE para dispositivos principales.

Para una notificación de PEP_DPM_PREPARE_DEVICE, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_ABANDON_DEVICE

Notificación (PEP_DPM_ABANDON_DEVICE)

Valor PEP_DPM_ABANDON_DEVICE.

Datos (PEP_DPM_ABANDON_DEVICE)

Puntero a una estructura de PEP_ABANDON_DEVICE . Indica al PEP que el dispositivo especificado ya no está siendo utilizado por el sistema operativo.

El marco de administración de energía de Windows (PoFx) envía esta notificación al PEP después de que el sistema operativo quite la pila de controladores de un dispositivo. Esta notificación permite que el PEP desactive los recursos externos de encendido o reloj que se usan para operar el dispositivo y para quitar este dispositivo de futuros procesos de toma de decisiones. Si el dispositivo debe iniciarse de nuevo más tarde, el PEP recibirá primero una notificación de PEP_DPM_PREPARE_DEVICE.

Para enviar una notificación PEP_DPM_ABANDON_DEVICE, el sistema operativo llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification es PEP_DPM_ABANDON_DEVICE y el parámetro Data apunta a una estructura PEP_ABANDON_DEVICE. En la entrada, el miembro DeviceId de esta estructura es una cadena de identificación de dispositivo que identifica de forma única un dispositivo. Antes de devolverlo, el PEP establece el miembro DeviceAccepted de esta estructura en TRUE para reclamar la propiedad del dispositivo o en FALSE para indicar que no posee el dispositivo.

El PEP que posee la administración de energía de un dispositivo es responsable de administrar los recursos de encendido y reloj que son externos al dispositivo y que son necesarios para operar el dispositivo.

En la tabla siguiente se muestran las condiciones previas que están en vigor cuando este sistema operativo envía una notificación de PEP_DPM_ABANDON_DEVICE al PEP y las condiciones posteriores que deben estar en vigor después de que el PEP controle esta notificación para un dispositivo que posee.

Preconditions Condiciones posteriores
El PEP ha recibido una notificación de PEP_DPM_PREPARE_DEVICE para el dispositivo y ha aceptado la propiedad del dispositivo.
Si el PEP ha recibido una notificación de PEP_DPM_REGISTER_DEVICE para el dispositivo y ha aceptado el registro del dispositivo, posteriormente ha recibido una notificación PEP_DPM_UNREGISTER_DEVICE para el dispositivo.
Los recursos que se asignaron en respuesta a la notificación de PEP_DPM_PREPARE_DEVICE deben liberarse.
Para una notificación de PEP_DPM_PREPARE_DEVICE, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_REGISTER_DEVICE

Notificación (PEP_DPM_REGISTER_DEVICE)

Valor PEP_DPM_REGISTER_DEVICE.

Datos (PEP_DPM_REGISTER_DEVICE)

Puntero a una estructura PEP_REGISTER_DEVICE_V2 .

Indica al PEP que la pila de controladores del dispositivo especificado se ha registrado con el marco de administración de energía de Windows (PoFx).

PoFx envía esta notificación cuando la pila de controladores del dispositivo llama a la rutina PoFxRegisterDevice para registrar el dispositivo. Esta notificación permite al PEP copiar la información de registro del dispositivo en el almacenamiento interno del PEP para referencia posterior.

Para enviar una notificación de PEP_DPM_REGISTER_DEVICE, el sistema operativo llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_REGISTER_DEVICE y el parámetro Data apunta a una estructura de PEP_REGISTER_DEVICE_V2 que contiene el identificador del kernel del dispositivo y otra información de registro. En la entrada, el miembro DeviceId de esta estructura es una cadena de identificación de dispositivo que identifica de forma única un dispositivo. Antes de devolverlo, el PEP establece el miembro DeviceAccepted de esta estructura en TRUE para reclamar la propiedad del dispositivo o en FALSE para indicar que no posee el dispositivo. Para obtener información sobre los demás miembros de esta estructura, vea PEP_REGISTER_DEVICE_V2.

En la tabla siguiente se muestran las condiciones previas que están en vigor cuando este sistema operativo envía una notificación de PEP_DPM_REGISTER_DEVICE al PEP y las condiciones posteriores que deben estar en vigor después de que el PEP controle esta notificación para un dispositivo que posee.

Preconditions Condiciones posteriores
El PEP ha recibido una notificación de PEP_DPM_PREPARE_DEVICE para un dispositivo que posee. El PEP está listo para recibir otras notificaciones de administración de energía de dispositivos (DPM) asociadas a este dispositivo.

Para una notificación de PEP_DPM_REGISTER_DEVICE, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_UNREGISTER_DEVICE

Notificación (PEP_DPM_UNREGISTER_DEVICE)

Valor PEP_DPM_UNREGISTER_DEVICE.

Datos (PEP_DPM_UNREGISTER_DEVICE)

Puntero a una estructura de PEP_UNREGISTER_DEVICE .

Indica al PEP que posee el dispositivo especificado que la pila de controladores del dispositivo ha retirado su registro del marco de administración de energía de Windows (PoFx).

PoFx envía esta notificación para informar al PEP de que la información de registro que el PEP almacenado para el dispositivo durante la notificación anterior PEP_DPM_REGISTER_DEVICE ya no es válida. En respuesta, el PEP puede limpiar cualquier estado interno usado para la administración de energía de este dispositivo.

Para enviar una notificación de PEP_DPM_UNREGISTER_DEVICE, el sistema operativo llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_UNREGISTER_DEVICE y el parámetro Data apunta a una estructura PEP_UNREGISTER_DEVICE. Esta estructura contiene el identificador que el PEP creó en respuesta a la notificación de PEP_DPM_REGISTER_DEVICE anterior para el dispositivo.

En la tabla siguiente se muestran las condiciones previas que están en vigor cuando este sistema operativo envía una notificación PEP_DPM_UNREGISTER_DEVICE al PEP y las condiciones posteriores que deben estar en vigor después de que el PEP controle esta notificación para un dispositivo que posee.

Preconditions Condiciones posteriores
Si el PEP ha recibido una notificación de PEP_DPM_REGISTER_DEVICE para el dispositivo y ha aceptado el registro del dispositivo.
El PEP puede recibir notificaciones de administración de energía de dispositivos (DPM) asociadas a este dispositivo.
El PEP puede notificar "trabajo" asociado a este dispositivo.
El PEP ya no puede recibir notificaciones de administración de energía de dispositivos (DPM) asociadas a este dispositivo, excepto por PEP_DPM_ABANDON_DEVICE.
El PEP no puede notificar "trabajo" asociado a este dispositivo.

Para una notificación de PEP_DPM_UNREGISTER_DEVICE, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_DEVICE_POWER_STATE

Notificación (PEP_DPM_DEVICE_POWER_STATE)

Valor PEP_DPM_DEVICE_POWER_STATE.

Datos (PEP_DPM_DEVICE_POWER_STATE)

Puntero a una estructura PEP_DEVICE_POWER_STATE .

Se envía al PEP cada vez que la pila de controladores del dispositivo solicita un cambio a un nuevo estado de energía Dx o se completa una transición solicitada previamente a un estado de energía Dx.

Una vez que el PEP llama a la rutina RequestWorker para solicitar un elemento de trabajo, PoFx responde enviando al PEP una notificación de PEP_DPM_DEVICE_POWER_STATE. Sin embargo, esta notificación no se envía hasta que los recursos (es decir, el subproceso de trabajo) necesarios para procesar el elemento de trabajo están disponibles. De este modo, PoFx garantiza que la solicitud de trabajo que el PEP pasa a PoFx durante la notificación nunca puede producir un error debido a la falta de recursos.

Para enviar una notificación de PEP_DPM_DEVICE_POWER_STATE, el sistema operativo llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_DEVICE_POWER_STATE y el parámetro Data apunta a una estructura PEP_DEVICE_POWER_STATE. En la entrada, el PEP debe suponer que el contenido de esta estructura no está inicializado. Para controlar esta notificación, el PEP debe establecer el miembro WorkInformation para que apunte a una estructura de PEP_WORK_INFORMATION asignada por PEP que describa el trabajo que se solicita. Además, el PEP debe establecer el miembro NeedWork de la estructura PEP_WORK en TRUE para confirmar que el PEP ha controlado la notificación de PEP_DEVICE_POWER_STATE y que el miembro WorkInformation apunta a una estructura de PEP_WORK_INFORMATION válida. Si el PEP no controla la notificación o no puede asignar la estructura de PEP_WORK_INFORMATION, el PEP debe establecer el miembro WorkInformation en NULL y establecer el miembro NeedWork en FALSE.

Para una notificación de PEP_DPM_DEVICE_POWER_STATE, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_COMPONENT_ACTIVE

Notificación (PEP_DPM_COMPONENT_ACTIVE)

Valor PEP_DPM_COMPONENT_ACTIVE.

Datos (PEP_DPM_COMPONENT_ACTIVE)

Puntero a una estructura de PEP_COMPONENT_ACTIVE que identifica el componente y que indica si este componente realiza una transición a la condición activa o a la condición inactiva.

Informa al PEP de que un componente debe realizar una transición de la condición inactiva a la condición activa, o viceversa.

El marco de administración de energía de Windows (PoFx) envía esta notificación cuando una transición está pendiente de la condición activa o a la condición de inactividad.

Para enviar una notificación PEP_DPM_COMPONENT_ACTIVE, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_COMPONENT_ACTIVE y el parámetro Data apunta a una estructura PEP_COMPONENT_ACTIVE.

Un componente al que se puede acceder está en la condición activa. Un componente inaccesible está en la condición de inactividad. Un componente que se encuentra en la condición activa siempre está en el estado de energía del componente F0. El componente no puede dejar F0 hasta que entre en la condición de inactividad. Un componente que se encuentra en la condición de inactividad puede estar en F0 o en un estado Fx de bajo consumo. La condición activa o inactiva de un componente es el único medio confiable para que un controlador determine si un componente es accesible. Un componente que está en F0, pero que también está en la condición de inactividad podría estar a punto de cambiar a un estado Fx de bajo consumo.

Cuando un componente activo está listo para entrar en la condición de inactividad, la transición se produce inmediatamente. Durante el control de la notificación de PEP_DPM_COMPONENT_ACTIVE, el PEP podría, por ejemplo, solicitar una transición de F0 a un estado Fx de bajo consumo para el componente.

Si un componente está en un estado fx de bajo consumo cuando una notificación de PEP_DPM_COMPONENT_ACTIVE solicita una transición de la condición de inactividad a la condición activa, el PEP debe cambiar primero el componente a F0 antes de que el componente pueda entrar en la condición activa. Es posible que el PEP tenga que terminar de preparar el componente para la transición a la condición activa de forma asincrónica, después de volver de la devolución de llamada AcceptDeviceNotification para la notificación de PEP_DPM_COMPONENT_ACTIVE. Una vez que el componente esté completamente configurado para funcionar en la condición activa, el PEP debe llamar a la rutina RequestWorker y, a continuación, controlar la notificación de PEP_DPM_WORK resultante estableciendo WorkType = PepWorkActiveComplete en la estructura PEP_WORK_INFORMATION.

Si el PEP recibe una notificación de PEP_DPM_COMPONENT_ACTIVE para un componente que está en F0 y ya está completamente configurado para funcionar en la condición activa, el PEP podría terminar de controlar esta notificación de forma sincrónica. Si se admite el control de "ruta de acceso rápida" de la notificación, el miembro WorkInformation de la estructura de PEP_COMPONENT_ACTIVE para esta notificación contiene un puntero a una estructura de PEP_WORK_INFORMATION y el PEP puede establecer el miembro WorkType de esta estructura en PepWorkActiveComplete para completar la transición. Sin embargo, si WorkInformation = NULL, no hay ninguna "ruta de acceso rápida" disponible y el PEP debe completar la transición de forma asincrónica llamando a RequestWorker, como se describe en el párrafo anterior.

Para obtener más información sobre las condiciones activas y inactivas, consulte Administración de energía de nivel de componente.

Para una notificación de PEP_DPM_COMPONENT_ACTIVE, se llama a la rutina AcceptDeviceNotification en IRQL <= DISPATCH_LEVEL.

PEP_DPM_WORK

Notificación (PEP_DPM_WORK)

Valor PEP_DPM_WORK.

Datos (PEP_DPM_WORK)

Puntero a una estructura de PEP_WORK .

Se envía al PEP una vez cada vez que el PEP llama a la rutina RequestWorker para solicitar un elemento de trabajo desde el marco de administración de energía de Windows (PoFx).

Una vez que el PEP llama a la rutina RequestWorker para solicitar un elemento de trabajo, PoFx responde enviando al PEP una notificación de PEP_DPM_WORK. Sin embargo, esta notificación no se envía hasta que los recursos (es decir, el subproceso de trabajo) necesarios para procesar el elemento de trabajo están disponibles. De este modo, PoFx garantiza que la solicitud de trabajo que el PEP pasa a PoFx durante la notificación nunca puede producir un error debido a la falta de recursos.

Para enviar una notificación PEP_DPM_WORK, el sistema operativo llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_WORK y el parámetro Data apunta a una estructura PEP_WORK. En la entrada, el PEP debe suponer que el contenido de esta estructura no está inicializado. Para controlar esta notificación, el PEP debe establecer el miembro WorkInformation para que apunte a una estructura de PEP_WORK_INFORMATION asignada por PEP que describa el trabajo que se solicita. Además, el PEP debe establecer el miembro NeedWork de la estructura PEP_WORK en TRUE para confirmar que el PEP ha controlado la notificación PEP_DPM_WORK y que el miembro WorkInformation apunta a una estructura de PEP_WORK_INFORMATION válida. Si el PEP no controla la notificación o no puede asignar la estructura de PEP_WORK_INFORMATION, el PEP debe establecer el miembro WorkInformation en NULL y establecer el miembro NeedWork en FALSE.

Para una notificación de PEP_DPM_WORK, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_POWER_CONTROL_REQUEST

Notificación (PEP_DPM_POWER_CONTROL_REQUEST)

Valor PEP_DPM_POWER_CONTROL_REQUEST.

Datos (PEP_DPM_POWER_CONTROL_REQUEST)

Puntero a una estructura PEP_POWER_CONTROL_REQUEST .

Informa al PEP de que un controlador ha llamado a la API PoFxPowerControl para enviar un código de control directamente al PEP.

El marco de administración de energía de Windows (PoFx) envía esta notificación al PEP cuando un controlador llama a la API PoFxPowerControl para enviar un código de control directamente al PEP. El puntero de datos de notificación en este caso apunta a la estructura PEP_POWER_CONTROL_REQUEST

Las solicitudes de control de energía y su semántica se definen entre el escritor pep y el propietario de la clase de dispositivo. Normalmente, esta interfaz es para la comunicación específica de clase de dispositivo que no se captura en el marco de administración de energía generalizado. Por ejemplo, el controlador UART puede comunicar la información de velocidad en baudios al PEP para modificar algunos rieles de reloj de plataforma/ divisores y dicha comunicación probablemente aprovecharía una solicitud de control de energía.

! [NOTA] El PEP solo puede solicitar que envíe un código de control al dispositivo después de recibir una notificación PEP_DPM_DEVICE_STARTED o PEP_DPM_POWER_CONTROL_REQUEST notificación.

Para una notificación de PEP_DPM_POWER_CONTROL_REQUEST, se llama a la rutina AcceptDeviceNotification en IRQL <= DISPATCH_LEVEL.

PEP_DPM_POWER_CONTROL_COMPLETE

Notificación (PEP_DPM_POWER_CONTROL_COMPLETE)

Valor PEP_DPM_POWER_CONTROL_COMPLETE.

Datos (PEP_DPM_POWER_CONTROL_COMPLETE)

Puntero a una estructura de PEP_POWER_CONTROL_COMPLETE .

Informa al PEP de que un controlador ha completado una solicitud de control de energía que el PEP emitió anteriormente

El marco de administración de energía de Windows (PoFx) envía esta notificación al PEP cuando un controlador completa una solicitud de control de energía emitida anteriormente por el PEP.

! [NOTA] El PEP puede omitir esta notificación si no emite ninguna solicitud de control de energía.

Para una notificación de PEP_DPM_POWER_CONTROL_COMPLETE, se llama a la rutina AcceptDeviceNotification en IRQL <= DISPATCH_LEVEL.

PEP_DPM_SYSTEM_LATENCY_UPDATE

Notificación (PEP_DPM_SYSTEM_LATENCY_UPDATE)

Valor PEP_DPM_SYSTEM_LATENCY_UPDATE.

Datos (PEP_DPM_SYSTEM_LATENCY_UPDATE)

Puntero a una estructura de PEP_SYSTEM_LATENCY .

Informa al PEP de que el sistema operativo ha actualizado la tolerancia general de latencia del sistema.

El marco de administración de energía de Windows (PoFx) envía esta notificación cuando el sistema operativo actualiza la tolerancia general de latencia del sistema.

En versiones anteriores de PoFx, el PEP usó esta notificación para la selección de estado inactivo del procesador y de la plataforma. Con las interfaces PEP más recientes, el sistema operativo controla completamente el proceso de selección y, como tal, esta notificación ya no es útil. Aquí se incluye por integridad y el PEP debe ignorarlo.

Para enviar una notificación de PEP_DPM_SYSTEM_LATENCY_UPDATE, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. Para esta notificación, se llama a la rutina AcceptDeviceNotification en IRQL <= DISPATCH_LEVEL.

PEP_DPM_DEVICE_STARTED

Notificación (PEP_DPM_DEVICE_STARTED)

Valor PEP_DPM_DEVICE_STARTED.

Datos (PEP_DPM_DEVICE_STARTED)

Puntero a una estructura PEP_DEVICE_STARTED .

Informa al PEP de que el dispositivo se ha iniciado para que esté disponible para recibir transacciones de control de energía.

Las pilas de dispositivos se registran con el sistema operativo para la administración de energía en tiempo de ejecución en un proceso de dos pasos. El controlador llama primero a PoFxRegisterDevice para proporcionar información sobre el número de componentes, sus estados inactivos y los atributos correspondientes. En respuesta a esta llamada, el PEP recibe una notificación PEP_DPM_REGISTER_DEVICE.

Una vez que el registro se realiza correctamente, el controlador tiene la oportunidad de inicializar sus componentes (es decir, establecer los requisitos de latencia de actualización, actualizar la residencia inactiva esperada, etc.). Una vez que el controlador haya completado las tareas de inicialización, notifica al administrador de energía mediante una llamada a PoFxStartDevicePowerManagement. En respuesta, el PEP recibirá una notificación PEP_DPM_DEVICE_STARTED. En este momento, el dispositivo se considera totalmente habilitado para la administración de energía en tiempo de ejecución.

Como resultado, el PEP no puede emitir solicitudes de control de energía al controlador a menos que haya recibido primero una notificación de PEP_DPM_DEVICE_STARTED o una notificación de PEP_DPM_POWER_CONTROL_REQUEST.

Nota

El PEP puede omitir esta notificación si no emite ninguna solicitud de control de energía.

Para una notificación de PEP_DPM_DEVICE_STARTED, se llama a la rutina AcceptDeviceNotification en IRQL <= DISPATCH_LEVEL.

PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE

Notificación (PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE)

Valor PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE.

Datos (PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE)

Puntero a una estructura de PEP_NOTIFY_COMPONENT_IDLE_STATE .

Se envía al PEP cuando el sistema operativo emite una transición de estado inactivo para un componente determinado.

El marco de administración de energía de Windows (PoFx) envía esta notificación cuando el sistema operativo emite una transición de estado inactivo para un componente determinado.

Importante

El PEP debe controlar esta notificación.

Para cada transición de estado inactivo, el PEP se notifica antes y después de que se notifique al controlador. El PEP distingue entre las notificaciones previas y posteriores examinando el miembro DriverNotified de la estructura PEP_NOTIFY_COMPONENT_IDLE_STATE. Para una notificación posterior, el miembro DriverNotified será TRUE.

Las notificaciones previas se suelen usar al realizar la transición a F0. En este caso, es posible que el PEP tenga que volver a habilitar los recursos de reloj o energía, de modo que cuando el controlador controla la notificación F0, el hardware está disponible. En consecuencia, las notificaciones posteriores se suelen usar al realizar la transición de F0 a un estado inactivo más profundo. Una vez que un controlador haya controlado la notificación de estado de inactividad, el PEP puede desactivar de forma segura los recursos de reloj y energía.

El control de una transición de estado inactivo para un componente determinado puede requerir un procesamiento asincrónico si la operación tarda una cantidad significativa de tiempo o el IRQL es demasiado alto para completar la transición de forma sincrónica. Como resultado, el PEP puede completar esta notificación de forma sincrónica o asincrónica estableciendo el miembro Completed en TRUE o FALSE respectivamente.

Si la notificación se va a completar de forma asincrónica, el PEP notifica al sistema operativo al finalizar solicitando un trabajo (consulte RequestWorker) y rellenando la estructura de información de trabajo proporcionada en la notificación de PEP_DPM_WORK resultante mediante un tipo de trabajo PepWorkCompleteIdleState.

Para enviar una notificación de PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. Esta rutina se llama en IRQL <= DISPATCH_LEVEL.

PEP_DPM_REGISTER_DEBUGGER

Notificación (PEP_DPM_REGISTER_DEBUGGER)

Valor PEP_DPM_REGISTER_DEBUGGER.

Datos (PEP_DPM_REGISTER_DEBUGGER)

Puntero a una estructura PEP_REGISTER_DEBUGGER .

Informa al PEP de que un dispositivo registrado se puede usar como puerto de depuración.

El marco de administración de energía de Windows (PoFx) envía esta notificación para notificar al PEP que un dispositivo registrado se puede usar como puerto de depuración.

Para una notificación de PEP_DPM_REGISTER_DEBUGGER, se llama a la rutina AcceptDeviceNotification en IRQL <= DISPATCH_LEVEL.

PEP_DPM_LOW_POWER_EPOCH

Notificación (PEP_DPM_LOW_POWER_EPOCH)

Valor PEP_DPM_LOW_POWER_EPOCH.

Datos (PEP_DPM_LOW_POWER_EPOCH)

Puntero a una estructura PEP_LOW_POWER_EPOCH .

Esta notificación está en desuso.

PEP_DPM_REGISTER_CRASHDUMP_DEVICE

Notificación (PEP_DPM_REGISTER_CRASHDUMP_DEVICE)

Valor PEP_DPM_REGISTER_CRASHDUMP_DEVICE.

Datos (PEP_DPM_REGISTER_CRASHDUMP_DEVICE)

Puntero a una estructura de PEP_REGISTER_CRASHDUMP_DEVICE .

El marco de administración de energía de Windows (PoFx) envía esta notificación cuando un dispositivo se registra como controlador crashdump.

La capacidad de generar un volcado de memoria (crashdump) cuando el sistema encuentra un error irrecuperable es incalculable para determinar la causa del bloqueo. Windows, de forma predeterminada, generará una marca de bloqueo cuando el sistema encuentre una comprobación de errores. En este contexto, el sistema está bajo un entorno operativo muy restringido con interrupciones deshabilitadas y irQL del sistema en HIGH_LEVEL.

Dado que los dispositivos implicados en la escritura de un bloqueo en el disco (es decir, controlador de almacenamiento, controlador PCI, etc.) pueden apagarse en el momento del bloqueo, el sistema operativo debe llamar al PEP para encender el dispositivo. Por lo tanto, el sistema operativo solicita una devolución de llamada (PowerOnDumpDeviceCallback) desde el PEP para cada dispositivo de la pila crashdump e invoca la devolución de llamada al generar el archivo de volcado de memoria.

Dado el entorno restringido en el momento del bloqueo, la devolución de llamada proporcionada por el PEP no debe tener acceso al código paginado, bloquear en ningún evento ni invocar ningún código que pueda hacer lo mismo. Además, el proceso de encendido de los recursos necesarios no puede depender de interrupciones. Como resultado, es posible que el PEP tenga que revertir al sondeo en caso de que tenga que esperar a que se habiliten varios recursos. Si el PEP no puede encender el dispositivo con estas restricciones, no debe controlar la notificación o no proporcionar una rutina de devolución de llamada.

Para enviar una notificación de PEP_DPM_REGISTER_CRASHDUMP_DEVICE, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. Para esta notificación, se llama a la rutina AcceptDeviceNotification en IRQL <= HIGH_LEVEL.

PEP_DPM_DEVICE_IDLE_CONSTRAINTS

Notificación (PEP_DPM_DEVICE_IDLE_CONSTRAINTS)

Valor PEP_DPM_DEVICE_IDLE_CONSTRAINTS.

Datos (PEP_DPM_DEVICE_IDLE_CONSTRAINTS)

Puntero a una estructura de PEP_DEVICE_PLATFORM_CONSTRAINTS . Se envía al PEP para consultar las dependencias entre los estados D del dispositivo y los estados inactivos de la plataforma.

El marco de administración de energía de Windows (PoFx) envía esta notificación al PEP para consultar las dependencias entre los estados D del dispositivo y los estados inactivos de la plataforma. El PEP usa esta notificación para devolver el estado D más ligero en el que el dispositivo todavía puede estar y entrar en cada estado inactivo de la plataforma. El sistema operativo garantizará que el dispositivo esté en el estado D mínimo antes de entrar en un estado inactivo de la plataforma asociada. Si un estado de inactividad de la plataforma no depende de que este dispositivo esté en estado D, el PEP debe especificar un estado D mínimo de PowerDeviceD0. Si ningún estado de inactividad de la plataforma depende de que este dispositivo esté en un estado D determinado, esta notificación se puede omitir.

Esta notificación se envía a cada dispositivo después de que el PEP haya recibido la notificación de PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES.

Para enviar una notificación PEP_DPM_DEVICE_IDLE_CONSTRAINTS, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification es PEP_DPM_DEVICE_IDLE_CONSTRAINTS y el parámetro Data apunta a una estructura PEP_DEVICE_PLATFORM_CONSTRAINTS.

Para una notificación de PEP_DPM_DEVICE_IDLE_CONSTRAINTS, siempre se llama a la rutina AcceptDeviceNotification en IRQL = DISPATCH_LEVEL.

PEP_DPM_COMPONENT_IDLE_CONSTRAINTS

Notificación (PEP_DPM_COMPONENT_IDLE_CONSTRAINTS)

Valor PEP_DPM_COMPONENT_IDLE_CONSTRAINTS.

Datos (PEP_DPM_COMPONENT_IDLE_CONSTRAINTS)

Puntero a una estructura PEP_COMPONENT_PLATFORM_CONSTRAINTS .

Se envía al PEP para consultar las dependencias entre los estados F del componente y los estados inactivos de la plataforma.

El marco de administración de energía de Windows (PoFx) envía esta notificación al PEP para consultar las dependencias entre los estados F del componente y los estados inactivos de la plataforma. El PEP usa esta notificación para devolver el estado F más ligero en el que el componente todavía puede estar y entrar en cada estado inactivo de la plataforma. El sistema operativo garantizará que el componente esté en el estado F mínimo antes de entrar en un estado inactivo de la plataforma asociada. Si un estado de inactividad de la plataforma no depende de que este componente esté en estado F, el PEP debe especificar un estado F mínimo de 0. Si ningún estado de inactividad de la plataforma depende de que este componente esté en un estado F determinado, se puede omitir esta notificación.

Las restricciones inactivas de dispositivo más profundas que D0 son más restringidas que los estados inactivos de componentes para los componentes del dispositivo. En el caso de un índice de estado inactivo de plataforma determinado, si el dispositivo especificó una restricción de inactividad del dispositivo, se omite la restricción de inactividad del componente correspondiente para todos los componentes asociados al dispositivo.

Esta notificación se envía a cada componente de cada dispositivo después de que el PEP reciba una notificación PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES.

Para enviar una notificación PEP_DPM_COMPONENT_IDLE_CONSTRAINTS, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. Siempre se llama a la rutina AcceptDeviceNotification en IRQL = DISPATCH_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES

Notificación (PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES)

Valor PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES.

Datos (PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES)

Puntero a una estructura de PEP_QUERY_COMPONENT_PERF_CAPABILITIES .

Informa al PEP de que se está consultando para el número de conjuntos de estado de rendimiento (P-state) definidos para un componente.

Para enviar una notificación de PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES y el parámetro Data apunta a una estructura PEP_QUERY_COMPONENT_PERF_CAPABILITIES.

Para una notificación de PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_SET

Notificación (PEP_DPM_QUERY_COMPONENT_PERF_SET)

Valor PEP_DPM_QUERY_COMPONENT_PERF_SET.

Datos (PEP_DPM_QUERY_COMPONENT_PERF_SET)

Puntero a una estructura PEP_QUERY_COMPONENT_PERF_SET .

Informa al PEP de que se está consultando para obtener información sobre un conjunto de valores de estado de rendimiento (conjunto de estados P) para un componente.

Para enviar una notificación de PEP_DPM_QUERY_COMPONENT_PERF_SET, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_QUERY_COMPONENT_PERF_SET y el parámetro Data apunta a una estructura PEP_QUERY_COMPONENT_PERF_SET.

Para una notificación de PEP_DPM_QUERY_COMPONENT_PERF_SET, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME

Notificación (OPEP_DPM_QUERY_COMPONENT_PERF_SET_NAME)

Valor PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME.

Datos (OPEP_DPM_QUERY_COMPONENT_PERF_SET_NAME)

Puntero a una estructura PEP_QUERY_COMPONENT_PERF_SET_NAME .

Informa al PEP de que se está consultando para obtener información sobre un conjunto de valores de estado de rendimiento (conjunto de estados P) para un componente.

Para enviar una notificación PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification es PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME y el parámetro Data apunta a una estructura de PEP_QUERY_COMPONENT_PERF_SET_NAME.

Para una notificación de PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_STATES

Notificación (PEP_DPM_QUERY_COMPONENT_PERF_STATES)

Valor PEP_DPM_QUERY_COMPONENT_PERF_STATES.

Datos (PEP_DPM_QUERY_COMPONENT_PERF_STATES)

Puntero a una estructura PEP_QUERY_COMPONENT_PERF_STATES .

Informa al PEP de que se está consultando para obtener una lista de valores de estado de rendimiento discretos (P-state) para un conjunto de estados P especificado.

Para enviar una notificación de PEP_DPM_QUERY_COMPONENT_PERF_STATES, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_QUERY_COMPONENT_PERF_STATES y el parámetro Data apunta a una estructura de PEP_QUERY_COMPONENT_PERF_STATES.

Para una notificación de PEP_DPM_QUERY_COMPONENT_PERF_STATES, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_REGISTER_COMPONENT_PERF_STATES

Notificación (PEP_DPM_REGISTER_COMPONENT_PERF_STATES)

Valor PEP_DPM_REGISTER_COMPONENT_PERF_STATES.

Datos (PEP_DPM_REGISTER_COMPONENT_PERF_STATES)

Puntero a una estructura PEP_REGISTER_COMPONENT_PERF_STATES .

Informa al PEP sobre los estados de rendimiento (P-states) del componente especificado.

Para enviar una notificación PEP_DPM_REGISTER_COMPONENT_PERF_STATES, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_REGISTER_COMPONENT_PERF_STATES y el parámetro Data apunta a una estructura de PEP_REGISTER_COMPONENT_PERF_STATES.

Para una notificación de PEP_DPM_REGISTER_COMPONENT_PERF_STATES, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_REQUEST_COMPONENT_PERF_STATE

Notificación (PEP_DPM_REQUEST_COMPONENT_PERF_STATE)

Valor PEP_DPM_REQUEST_COMPONENT_PERF_STATE.

Datos (PEP_DPM_REQUEST_COMPONENT_PERF_STATE)

Puntero a una estructura de PEP_REQUEST_COMPONENT_PERF_STATE.

Informa al PEP de que el marco de administración de energía (PoFx) solicita uno o varios cambios de estado de rendimiento (P).

Para enviar una notificación PEP_DPM_REQUEST_COMPONENT_PERF_STATE, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_REQUEST_COMPONENT_PERF_STATE y el parámetro Data apunta a una estructura de PEP_REQUEST_COMPONENT_PERF_STATE.

Para una notificación de PEP_DPM_REQUEST_COMPONENT_PERF_STATE, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE

Notificación (PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE)

Valor PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE.

Datos (PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE)

Puntero a una estructura de PEP_QUERY_CURRENT_COMPONENT_PERF_STATE.

Informa al PEP de que se está consultando para obtener información sobre el estado P actual en el conjunto de estados P especificado.

Para enviar una notificación PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. En esta llamada, el valor del parámetro Notification se PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE y el parámetro Data apunta a una estructura de PEP_QUERY_CURRENT_COMPONENT_PERF_STATE.

Para una notificación de PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE, siempre se llama a la rutina AcceptDeviceNotification en IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS

Notificación (PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS)

Valor PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS.

Datos (PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS)

Puntero a una estructura de PEP_DEBUGGER_TRANSITION_REQUIREMENTS .

Se envía al PEP para consultar el conjunto de estados coordinados o de plataforma que requieren que el depurador se desactive.

El marco de administración de energía de Windows (PoFx) envía esta notificación al PEP para consultar el conjunto de estados coordinados o de plataforma que requieren que el depurador se desactive. Si se acepta esta notificación, el sistema operativo realizará todas las transiciones de energía del depurador para el PEP y es posible que el PEP no use TransitionCriticalResource para administrar el depurador.

Esta notificación se envía a cada dispositivo depurador después de que el PEP haya aceptado una notificación de PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE o PEP_NOTIFY_PPM_QUERY_COORDINATED_STATES.

Para enviar una notificación PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. Para esta notificación, siempre se llama a la rutina AcceptDeviceNotification en IRQL = DISPATCH_LEVEL.

PEP_DPM_QUERY_SOC_SUBSYSTEM

Notificación (PEP_DPM_QUERY_SOC_SUBSYSTEM)

Valor PEP_DPM_QUERY_SOC_SUBSYSTEM.

Datos (PEP_DPM_QUERY_SOC_SUBSYSTEM)

Puntero a una estructura de PEP_QUERY_SOC_SUBSYSTEM .

Se envía al PEP para recopilar información básica sobre un sistema determinado en un subsistema de chip (SoC).

El marco de administración de energía de Windows (PoFx) envía esta notificación al PEP después de inicializar los estados inactivos de la plataforma para recopilar información básica sobre un subsistema soC determinado. Un PEP que no implementa la contabilidad del subsistema soC o que no la implementa para el estado inactivo de la plataforma especificada, devuelve FALSE. Esto dirige al sistema operativo para dejar de enviar notificaciones de diagnóstico al PEP para este estado de inactividad de la plataforma.

SubsystemCount de un sistema y MetadataCount de un subsistema pueden cambiar con actualizaciones pep/BSP. SubsystemIndex puede cambiar cada vez que se arranca el sistema operativo.

Importante

El PEP no puede omitir esta notificación. El PEP recibe esta notificación porque respondió a la notificación de PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT para este PlatformIdleStateIndex con un SubsystemCount distinto de cero.

Para enviar una notificación PEP_DPM_QUERY_SOC_SUBSYSTEM, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP en irQL < DISPATCH_LEVEL.

PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME

Notificación (PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME)

Valor PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME.

Datos (PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME)

Puntero a una estructura de PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME .

Se envía al PEP cuando el sistema operativo quiere recopilar el recuento de tiempo que un sistema determinado en un subsistema de chip (SoC) ha bloqueado la entrada en un estado de inactividad de plataforma determinado sin el conocimiento del sistema operativo.

Normalmente, el sistema operativo llama a esta notificación al final de una sesión de espera conectada extendida en la que el sistema operativo intentó entrar en el estado de inactividad de la plataforma especificada. El PEP_QUERY_SOC_SUBSYSTEM_COUNT. El valor SubsystemCount, rellenado anteriormente por el PEP durante la inicialización de subcomponente, especifica cuántos PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME notificaciones se envían al PEP a la vez. Un PEP puede recibir varias notificaciones de PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME para un subsistema determinado. Estas notificaciones pueden o no intercalarse con PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING notificaciones.

Importante

El PEP no puede omitir esta notificación. El PEP recibe esta notificación porque respondió a la notificación de PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT para este PlatformIdleStateIndex con un SubsystemCount distinto de cero.

Para enviar una notificación de PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP en irQL < DISPATCH_LEVEL.

PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT

Notificación (PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT)

Valor PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT.

Datos (PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT)

Puntero a una estructura de PEP_QUERY_SOC_SUBSYSTEM_COUNT .

Se han enviado al PEP después de inicializar los estados de inactividad de la plataforma para indicar al sistema operativo si el PEP admite el sistema en un subsistema de chip (SoC) que tiene en cuenta un estado de inactividad de la plataforma determinado.

Esta es la primera notificación de diagnóstico del subsistema soC enviada al PEP. Un PEP que no implementa la contabilidad del subsistema soC o no la implementa para el estado inactivo de la plataforma especificada, devuelve FALSE, en cuyo caso el sistema operativo no enviará más notificaciones de diagnóstico del subsistema soC para este estado de inactividad de la plataforma.

Nota

El PEP puede omitir esta notificación si no implementa notificaciones de diagnóstico de SoC para el estado de inactividad de la plataforma especificada.

Para enviar una notificación de PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification de PEP en irQL < DISPATCH_LEVEL.

PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA

Notificación (PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA)

Valor PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA.

Datos (PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA)

Puntero a una estructura de PEP_QUERY_SOC_SUBSYSTEM_METADATA.

Se envía al PEP para recopilar metadatos opcionales sobre el subsistema cuyo tiempo de bloqueo se acaba de consultar.

Normalmente, esta notificación se envía al PEP inmediatamente después de una notificación de PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME. Una PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA notificación recopila todos los pares de metadatos clave-valor que describen el subsistema.

Importante

El PEP no puede omitir esta notificación. El PEP recibe esta notificación porque respondió a la notificación de PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT para este PlatformIdleStateIndex con un SubsystemCount distinto de cero.

Para enviar una notificación PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP. Para esta notificación, se llama a la rutina AcceptDeviceNotification en irQL < DISPATCH_LEVEL.

PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING

Notificación (PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING)

Valor PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING.

Datos (PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING)

Puntero a un puntero A a una estructura de PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING . Estructura.

Se envía al PEP para borrar todo el tiempo de bloqueo del subsistema y la contabilidad de metadatos, realizar cualquier inicialización adicional necesaria y reiniciar la contabilidad.

El marco de administración de energía de Windows (PoFx) envía esta notificación al PEP en cualquier momento después de que todos los subsistemas se inicialicen con el sistema operativo. Normalmente, se llama a esta notificación cuando el sistema operativo comienza un nuevo período de análisis en torno a lo que mantiene el sistema en un chip (SoC) fuera del estado inactivo de la plataforma especificada (dirigido a DRIPS al entrar en espera conectado). El sistema operativo solo envía esta notificación para los estados inactivos de la plataforma para los que el PEP inicializó uno o varios subsistemas soC.

Para enviar una notificación de PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING, PoFx llama a la rutina de devolución de llamada AcceptDeviceNotification del PEP en irQL < DISPATCH_LEVEL.