Compartir a través de


Llamar a PoStartNextPowerIrp desde un controlador de filtro

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 filtro debe llamar a PoStartNextPowerIrp una vez por 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 de 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 DispatchPower , después de adquirir el bloqueo de eliminación y antes de establecer la ubicación de la pila irP.

En la rutina DispatchPower , antes de llamar a IoCompleteRequest.

IRP_MN_SET_POWER (estado de alimentación del dispositivo)

En una rutina de IoCompletion , inmediatamente antes de volver.

No permitido.

IRP_MN_SET_POWER (estado de alimentación del sistema)

En la rutina DispatchPower , después de adquirir el bloqueo de eliminación y antes de establecer la ubicación de la pila irP.

No permitido.