Função PoFxNotifySurprisePowerOn (wdm.h)

A rotina PoFxNotifySurprisePowerOn notifica a PoFx (estrutura de gerenciamento de energia) de que um dispositivo foi ativado como um efeito colateral do fornecimento de energia para algum outro dispositivo.

Sintaxe

void PoFxNotifySurprisePowerOn(
  [in] PDEVICE_OBJECT Pdo
);

Parâmetros

[in] Pdo

Um ponteiro para um PDO ( objeto de dispositivo físico ). Esse parâmetro aponta para uma estrutura DEVICE_OBJECT que representa o dispositivo físico que foi ativado como um efeito colateral. O chamador é sempre o motorista do ônibus que enumerou o PDO.

Retornar valor

Nenhum

Comentários

Os drivers de dispositivo não devem chamar essa rotina. Essa rotina deve ser chamada apenas por motoristas de ônibus.

Um motorista de ônibus chama essa rotina para informar à PoFx que um dispositivo que não está sendo usado no momento foi ativado ao mesmo tempo que um segundo dispositivo. Por exemplo, o primeiro dispositivo pode compartilhar um power rail com o segundo dispositivo. Portanto, a energia não pode ser fornecida ao segundo dispositivo sem fornecer energia, como efeito colateral, ao primeiro dispositivo. Como o primeiro dispositivo não está sendo usado, esse dispositivo deve ser configurado para consumir o mínimo de energia possível.

Para solicitar uma transição para um estado de energia D0, um driver de dispositivo envia uma solicitação IRP_MN_SET_POWER para baixo de sua pilha de dispositivos. Por meio do PDO nessa pilha, o driver de barramento que é o pai desse dispositivo recebe a solicitação e responde fornecendo energia para o dispositivo. No entanto, se o motorista do barramento não puder ativar esse dispositivo sem também ativar um segundo dispositivo não utilizado, o motorista do barramento poderá chamar PoFxNotifySurprisePowerOn para reduzir a energia consumida pelo dispositivo não utilizado.

Na entrada para PoFxNotifySurprisePowerOn, o dispositivo representado pelo parâmetro Pdo está em um estado de energia D0 não inicializado. Nesse estado, todos os componentes no dispositivo normalmente são ativados. Em resposta à chamada PoFxNotifySurprisePowerOn , PoFx configura o dispositivo em um estado D0 inicializado. Durante essa configuração, o PoFx alterna o máximo de componentes que puder para estados de energia fx de baixa potência. Se possível, o PoFx configura o dispositivo em um estado "d3 quente", que é realmente um estado D0 no qual todos os componentes individuais do dispositivo estão desativados.

PoFxNotifySurprisePowerOn pode configurar apenas um dispositivo que foi registrado com PoFx quando o dispositivo foi desativado anteriormente. No entanto, a menos que o motorista do ônibus saiba que um dispositivo não está registrado, o motorista do ônibus deve chamar PoFxNotifySurprisePowerOn quando o dispositivo estiver ativado como um efeito colateral.

Se o driver do barramento não chamar essa rotina quando o dispositivo estiver ativado, o hardware do dispositivo poderá permanecer no estado totalmente ativado por tempo indefinido, durante o qual a PoFx pressupõe que o dispositivo permaneça no estado de energia D3 (totalmente desativado).

Chame PoFxNotifySurprisePowerOn somente se o dispositivo estiver ativado aliás, como um efeito colateral de ativar algum outro dispositivo. Se o driver de barramento restaurar a energia para um dispositivo em resposta a um retorno de chamada DevicePowerRequiredCallback ou uma solicitação de IRP_MN_SET_POWER para uma transição D0, chame a rotina PoFxReportDevicePoweredOn para informar a PoFx quando a energia for restaurada para o dispositivo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 8.
Plataforma de Destino Universal
Cabeçalho wdm.h
Biblioteca Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

Confira também

DEVICE_OBJECT

DevicePowerRequiredCallback

IRP_MN_SET_POWER

PoFxReportDevicePoweredOn