Función PoStartNextPowerIrp (ntifs.h)
La rutina PoStartNextPowerIrp indica al administrador de energía que el controlador está listo para controlar el 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 se IRP_MJ_POWER el código de función principal.
Valor devuelto
None
Observaciones
A partir de Windows Vista, el controlador no es necesario para llamar a 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, todos los controladores de una pila de dispositivos deben llamar a PoStartNextPowerIrp después de que el controlador termine 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 cuando irP viaja hacia abajo o hace 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, IoSkipCurrentIrpStackLocation y 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 | Value |
---|---|
Cliente mínimo compatible | Windows 2000. |
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluye Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | <=DISPATCH_LEVEL |