Share via


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

Consulte también

IRP

IRP_MJ_POWER

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

IoCompleteRequest

IoSkipCurrentIrpStackLocation

PoCallDriver

PoRequestPowerIrp