Função PoSetSystemWake (wdm.h)
A rotina PoSetSystemWake marca o IRP especificado como aquele que contribuiu para acordar o sistema de um estado de suspensão.
Sintaxe
void PoSetSystemWake(
[in, out] PIRP Irp
);
Parâmetros
[in, out] Irp
Um ponteiro para o IRP de espera/ativação.
Retornar valor
Nenhum
Comentários
Os drivers chamam PoSetSystemWake para marcar um IRP IRP_MN_WAIT_WAKE como contribuindo para acordar o sistema de um estado de suspensão. Por padrão, os IRPs de espera/ativação são considerados IRPs de ativação do dispositivo. É responsabilidade do dispositivo terminal em uma cadeia de espera/ativação determinar se ele acordou o sistema e chamar PoSetSystemWake para o IRP de espera/ativação do terminal. Quando um driver chama PoSetSystemWake em um IRP, ele é marcado como tendo contribuído para acordar o sistema de um estado de suspensão. Apenas um motorista em uma pilha precisa chamar essa rotina, e normalmente deve ser o motorista de ônibus em uma pilha de motoristas.
Todos os outros drivers em uma cadeia de espera/ativação podem chamar PoGetSystemWake para seus próprios IRPs de espera/ativação na conclusão para determinar se devem chamar PoSetSystemWake em qualquer IRPs de espera/ativação filho que eles estão prestes a concluir. Isso garante que as informações de ativação do sistema progridam corretamente em toda a cadeia de espera/ativação.
Após a conclusão de um IRP de espera/ativação, o power manager verifica se o IRP está marcado como um IRP de ativação do sistema. Se o IRP estiver marcado como um IRP de ativação do sistema, o power manager adicionará o IRP a uma lista interna dos dispositivos que acordaram o sistema. No entanto, o power manager só controla os dispositivos mais específicos que funcionam no sistema. Por exemplo, se o dispositivo A for adicionado como um dispositivo que acordou o sistema e, em seguida, o dispositivo B , um filho do dispositivo A, também for adicionado, o power manager manterá apenas o dispositivo B na lista porque o dispositivo B é o mais específico. Se o power manager não puder determinar o dispositivo mais específico que acordou o sistema, o power manager poderá acompanhar mais de um dispositivo que relatou ter acordado o sistema.
O power manager registra um evento ETW (Rastreamento de Eventos para Windows) (acessível no canal do sistema global) que inclui informações sobre quais dispositivos acordaram o sistema.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows Vista. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |