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

Confira também

PoGetSystemWake