Llamar a PoStartNextPowerIrp desde un propietario de directiva de energía del dispositivo
A partir de Windows Vista, no es necesario llamar a PoStartNextPowerIrp y llamar a esta rutina no realiza ninguna operación de administración de energía. Sin embargo, en Windows Server 2003, Windows XP y Windows 2000, un controlador de función propietario de la directiva de energía del dispositivo debe llamar a PoStartNextPowerIrp una vez para cada IRP_MN_QUERY_POWER o IRP_MN_SET_POWER solicitud que recibe el controlador. Cuando se produce la llamada depende del tipo de solicitud y de si el controlador producirá un error o se realizará correctamente la solicitud, como se muestra en la tabla siguiente.
Tipo de solicitud | Si el controlador se realiza correctamente la solicitud, se produce la llamada: | Si el controlador produce un error en la solicitud, se produce la llamada: |
---|---|---|
IRP_MN_QUERY_POWER (estado de alimentación del dispositivo) |
En una rutina ioCompletion , inmediatamente antes de volver. |
En la rutina DispatchPower , antes de llamar a IoCompleteRequest. |
IRP_MN_QUERY_POWER (estado de alimentación del sistema) |
En la rutina de devolución de llamada PoRequestPowerIrp para el IRP del dispositivo relacionado, inmediatamente antes de completar el IRP del sistema. |
En la rutina DispatchPower , antes de llamar a IoCompleteRequest. |
IRP_MN_SET_POWER (estado de alimentación del dispositivo) |
En una rutina ioCompletion , inmediatamente antes de volver. |
No permitido. |
IRP_MN_SET_POWER (estado de alimentación del sistema) |
En la rutina de devolución de llamada PoRequestPowerIrp para el IRP del dispositivo relacionado, inmediatamente antes de completar el IRP del sistema. |
No permitido. |