Compartilhar via


EVT_WDF_DEVICE_D0_EXIT função de retorno de chamada (wdfdevice.h)

[Aplica-se a KMDF e UMDF]

A função de retorno de chamada de evento EvtDeviceD0Exit de um driver executa operações necessárias quando o dispositivo do driver deixa o estado de energia D0.

Sintaxe

EVT_WDF_DEVICE_D0_EXIT EvtWdfDeviceD0Exit;

NTSTATUS EvtWdfDeviceD0Exit(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE TargetState
)
{...}

Parâmetros

[in] Device

Um identificador para um objeto de dispositivo de estrutura.

[in] TargetState

Um enumerador tipo WDF_POWER_DEVICE_STATEque identifica o estado de energia do dispositivo que o dispositivo está prestes a inserir.

Valor de retorno

Se a função EvtDeviceD0Exit não encontrar erros, ela deverá retornar STATUS_SUCCESS ou outro valor de status para o qual NT_SUCCESS(status) é igual VERDADEIRO. Caso contrário, ele deverá retornar um valor de status para o qual NT_SUCCESS(status) é igual a false.

Observações

Para registrar uma função de retorno de chamada EvtDeviceD0Exit, um driver deve chamar WdfDeviceInitSetPnpPowerEventCallbacks.

Se o driver tiver registrado uma função de retorno de chamada EvtDeviceD0Exit, a estrutura chamará a função sempre que um dos dispositivos do driver deixar seu estado de trabalho (D0). Um dispositivo deixa o estado D0 quando ocorre um destes procedimentos:

  • O sistema e todos os seus dispositivos estão prestes a deixar seus estados de trabalho e entrar em um estado de baixa potência.
  • O dispositivo está prestes a entrar em um estado de baixa potência porque ele está ocioso, se o dispositivo dá suporte a ociosidade de baixa potência.
  • O Gerenciador de Plug and Play está tentando redistribuir os recursos de hardware do sistema.
  • Um usuário indicou, normalmente por meio da interface do usuário de um aplicativo, que deseja remover o dispositivo.
A estrutura também chama a função de retorno de chamada EvtDeviceD0Exit depois que um dispositivo foi removido inesperadamente (removido surpresa).

Para obter mais informações sobre quando a estrutura chama essa função de retorno de chamada, consulte cenários de PnP e gerenciamento de energia.

A menos que o dispositivo tenha sido removido de surpresa, a estrutura chama essa função de retorno de chamada imediatamente após desabilitar as interrupções do dispositivo, mas antes que a energia do dispositivo seja reduzida de D0. O parâmetro TargetState identifica o estado de energia do dispositivo que o dispositivo está prestes a inserir.

A função de retorno de chamada EvtDeviceD0Exit deve executar todas as operações necessárias antes que o dispositivo insira o estado de baixa potência especificado, como salvar qualquer informação de que o driver precisará posteriormente para restaurar o dispositivo para seu estado de energia D0.

Se o parâmetro TargetState for WdfPowerDevicePrepareForHibernation, o driver não deverá desligar o dispositivo, pois o sistema usará o dispositivo ao salvar seu arquivo de hibernação.

Se TargetState estiver WdfPowerDeviceD3Final, você deverá assumir que o sistema está sendo desativado, o dispositivo está prestes a ser removido ou um de reequilibramento de recursos está em andamento. Se o driver precisar salvar informações, ele deverá gravá-la no disco ou em algum outro meio de armazenamento permanente. No entanto, é incorreto verificar WdfPowerDeviceD3Final e, em seguida, fazer o trabalho de limpeza para remoção do dispositivo. Por exemplo, se um dispositivo que inseriu o estado de energia Dx devido à idling out for removido posteriormente, seu EvtDeviceD0Exit não será chamado novamente. O local correto para fazer esse trabalho seria em EvtDeviceReleaseHardware.

Para obter mais informações sobre drivers que fornecem essa função de retorno de chamada, consulte Suporte a PnP e gerenciamento de energia em drivers de funções.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
versão mínima do KMDF 1.0
versão mínima do UMDF 2.0
cabeçalho wdfdevice.h (inclua Wdf.h)
IRQL PASSIVE_LEVEL

Consulte também

EvtDeviceD0Entry