Falha em um sistema Query-Power IRP em um filtro ou driver de função
Um driver de funções ou filtro (que não é o proprietário da política de energia de um dispositivo) poderá falhar em uma solicitação de IRP_MN_QUERY_POWER se um dos seguintes itens for verdadeiro:
O dispositivo está habilitado para ativação e o estado de energia do sistema solicitado é menos alimentado do que o valor de SystemWake, que especifica o estado menos alimentado do qual o dispositivo pode ativar o sistema. Por exemplo, um dispositivo que pode ativar o sistema do S2, mas não do S3, falharia em uma consulta para S3, mas teria êxito em uma consulta para S2.
Inserir um estado de energia do dispositivo que corresponda ao estado solicitado forçaria o driver a abandonar uma operação que perderia dados, como uma conexão de modem aberta. Um driver raramente falhará em uma consulta por esse motivo; na maioria das circunstâncias, o aplicativo lida com esses casos.
Para falhar em uma solicitação de IRP_MN_QUERY_POWER para um estado de energia do sistema, um driver deve executar as seguintes etapas:
Chame PoStartNextPowerIrp para indicar que o driver está preparado para lidar com o próximo IRP de energia. (Somente Windows Server 2003, Windows XP e Windows 2000)
Defina Irp-IoStatus.Status> como uma falha status e chame IoCompleteRequest, especificando IO_NO_INCREMENT. Não passe o IRP mais abaixo na pilha do dispositivo.
Chame IoReleaseRemoveLock para liberar o bloqueio adquirido anteriormente.
Retornar uma falha status de sua rotina DispatchPower.