Función PoStartNextPowerIrp (ntifs.h)
La rutina de PoStartNextPowerIrp indica al administrador de energía que el controlador está listo para controlar la siguiente IRP de energía. (Solo Windows Server 2003, Windows XP y Windows 2000).
Sintaxis
void PoStartNextPowerIrp(
[in, out] PIRP Irp
);
Parámetros
[in, out] Irp
Puntero a un IRP en el que el código de función principal es IRP_MJ_POWER.
Valor devuelto
Ninguno
Observaciones
A partir de Windows Vista, no es necesario llamar al controlador PoStartNextPowerIrp y una llamada a esta rutina no realiza una operación de administración de energía. Sin embargo, en Windows Server 2003, Windows XP y Windows 2000, PoStartNextPowerIrp deben llamar todos los controladores de una pila de dispositivos después de que el controlador haya terminado con el IRP de energía anterior, si existe, y está listo para controlar el siguiente IRP de energía. Cada controlador debe llamarlo una vez para cada solicitud de IRP_MN_QUERY_POWER o IRP_MN_SET_POWER.
Aunque los IRP de energía solo se completan una vez, normalmente por el controlador de bus para un dispositivo, cada controlador de la pila de dispositivos debe llamar a PoStartNextPowerIrp a medida que el IRP viaja hacia abajo o realiza una copia de seguridad de la pila. Incluso si un controlador produce un error en el IRP, el controlador debe llamar a PoStartNextPowerIrp para indicar al administrador de energía que está listo para controlar otro IRP de energía.
El controlador debe llamar a PoStartNextPowerIrp mientras la ubicación actual de la pila irP apunta al controlador actual. Por lo tanto, se debe llamar a esta rutina antes de ioCompleteRequest, IoSkipCurrentIrpStackLocationy PoCallDriver. Como regla general, un controlador debe llamar a PoStartNextPowerIrp desde su rutina de ioCompletion asociada al IRP o desde la rutina de devolución de llamada que pasó a PoRequestPowerIrp.
Los conductores de autobús deben llamar a PoStartNextPowerIrp antes de completar cada IRP.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000. |
de la plataforma de destino de | Universal |
encabezado de | ntifs.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | <=DISPATCH_LEVEL |