Compartir a través de


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

Consulte también

IRP

IRP_MJ_POWER

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

IoCompleteRequest

ioSkipCurrentIrpStackLocation

PoCallDriver

PoRequestPowerIrp