Función PoFxNotifySurprisePowerOn (wdm.h)
La rutina PoFxNotifySurprisePowerOn notifica al marco de administración de energía (PoFx) que un dispositivo se ha activado como efecto secundario de suministrar energía a algún otro dispositivo.
Sintaxis
void PoFxNotifySurprisePowerOn(
[in] PDEVICE_OBJECT Pdo
);
Parámetros
[in] Pdo
Puntero a un objeto de dispositivo físico (PDO). Este parámetro apunta a una estructura de DEVICE_OBJECT que representa el dispositivo físico que se ha activado como efecto secundario. El autor de la llamada siempre es el controlador de autobús que enumera el PDO.
Valor devuelto
None
Observaciones
Los controladores de dispositivos no deben llamar a esta rutina. Solo los conductores de autobús deben llamar a esta rutina.
Un controlador de autobús llama a esta rutina para informar a PoFx de que un dispositivo que no se está usando actualmente estaba activado al mismo tiempo que un segundo dispositivo. Por ejemplo, el primer dispositivo podría compartir un raíl de alimentación con el segundo dispositivo. Por lo tanto, la alimentación no se puede suministrar al segundo dispositivo sin suministrar alimentación, como efecto secundario, al primer dispositivo. Dado que el primer dispositivo no se usa, este dispositivo debe configurarse para consumir la menor potencia posible.
Para solicitar una transición a un estado de alimentación D0, un controlador de dispositivo envía una solicitud de IRP_MN_SET_POWER a la pila de dispositivos. A través del PDO de esta pila, el controlador de bus que es el elemento primario de este dispositivo recibe la solicitud y responde proporcionando alimentación al dispositivo. Sin embargo, si el controlador de bus no puede activar este dispositivo sin activar un segundo dispositivo sin usar, el controlador de bus puede llamar a PoFxNotifySurprisePowerOn para reducir la energía consumida por el dispositivo sin usar.
En la entrada a PoFxNotifySurprisePowerOn, el dispositivo representado por el parámetro Pdo está en un estado de alimentación D0 no inicializado. En este estado, todos los componentes del dispositivo normalmente están activados. En respuesta a la llamada a PoFxNotifySurprisePowerOn , PoFx configura el dispositivo en un estado D0 inicializado. Durante esta configuración, PoFx cambia tantos componentes como pueda a estados de energía fx de bajo consumo. Si es posible, PoFx configura el dispositivo en un estado "D3 activo", que es realmente un estado D0 en el que todos los componentes individuales del dispositivo están desactivados.
PoFxNotifySurprisePowerOn solo puede configurar un dispositivo que se registró con PoFx cuando el dispositivo se desactivó anteriormente. Sin embargo, a menos que el controlador de autobús sepa que un dispositivo no está registrado, el controlador de autobús debe llamar a PoFxNotifySurprisePowerOn cuando el dispositivo está activado como un efecto secundario.
Si el controlador de bus no puede llamar a esta rutina cuando el dispositivo está activado, el hardware del dispositivo podría permanecer completamente activado durante un tiempo indefinido, durante el cual PoFx asume que el dispositivo permanece en estado de alimentación D3 (totalmente apagado).
Llama a PoFxNotifySurprisePowerOn solo si el dispositivo se ha activado accidentalmente, como efecto secundario de activar algún otro dispositivo. Si el controlador de bus restaura la alimentación en un dispositivo en respuesta a una devolución de llamada DevicePowerRequiredCallback o una solicitud de IRP_MN_SET_POWER para una transición D0, llame a la rutina PoFxReportDevicePoweredOn en su lugar para informar a PoFx cuando se restaure la alimentación en el dispositivo.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 8. |
Plataforma de destino | Universal |
Encabezado | wdm.h |
Library | Ntoskrnl.lib |
Archivo DLL | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |