Función PoSetSystemWake (wdm.h)
La rutina PoSetSystemWake marca el IRP especificado como uno que contribuyó a despertar el sistema de un estado de suspensión.
Sintaxis
void PoSetSystemWake(
[in, out] PIRP Irp
);
Parámetros
[in, out] Irp
Puntero al IRP de espera o reactivación.
Valor devuelto
None
Observaciones
Los controladores llaman a PoSetSystemWake para marcar un IRP de IRP_MN_WAIT_WAKE como contribución a despertar el sistema desde un estado de suspensión. De forma predeterminada, los IRP de espera/reactivación se consideran IRP de reactivación de dispositivos. Es responsabilidad del dispositivo terminal en una cadena de espera/reactivación determinar si despertó el sistema y llamar a PoSetSystemWake para el IRP de espera/reactivación del terminal. Cuando un controlador llama a PoSetSystemWake en un IRP, se marca como haber contribuido a despertar el sistema desde un estado de suspensión. Solo un controlador de una pila necesita llamar a esta rutina y normalmente debe ser el controlador de autobús en una pila de controladores.
Todos los demás controladores de una cadena de espera/reactivación pueden llamar a PoGetSystemWake por sus propios IRP de espera/reactivación al finalizar para determinar si deben llamar a PoSetSystemWake en cualquier IRP de espera/reactivación secundarios que están a punto de completarse. Esto garantiza que la información de reactivación del sistema progresa correctamente a lo largo de la cadena de espera/reactivación.
Una vez completado un IRP de espera o reactivación, el administrador de energía comprueba si el IRP está marcado como IRP de reactivación del sistema. Si el IRP está marcado como IRP de reactivación del sistema, el administrador de energía agrega el IRP a una lista interna de los dispositivos que despertó el sistema. Sin embargo, el administrador de energía solo realiza un seguimiento de los dispositivos más específicos que funcionan en el sistema. Por ejemplo, si el dispositivo A se agrega como un dispositivo que despertó el sistema y, a continuación, se agrega un elemento secundario del dispositivo A, el administrador de energía solo conserva el dispositivo B en la lista porque el dispositivo B es el más específico. Si el administrador de energía no puede determinar el dispositivo más específico que despertó el sistema, el administrador de energía podría realizar un seguimiento de más de un dispositivo que notificó que despertó el sistema.
El administrador de energía registra un evento de seguimiento de eventos para Windows (ETW) (visible en el canal del sistema global) que incluye información sobre qué dispositivos despertó el sistema.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows Vista. |
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |