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 que são 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 de tipo WDF_POWER_DEVICE_STATE que identifica o estado de energia do dispositivo que o dispositivo está prestes a inserir.

Retornar valor

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

Comentários

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 dos seguintes procedimentos:

  • O sistema e todos os seus dispositivos estão prestes a deixar seus estados de trabalho e entrar em um estado de baixa energia.
  • O dispositivo está prestes a entrar em um estado de baixa energia porque está ocioso, se o dispositivo oferecer suporte a ociosidade de baixa energia.
  • 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 é removido inesperadamente (removido de surpresa).

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

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 entre no estado de baixa energia 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 for WdfPowerDeviceD3Final, você deverá assumir que o sistema está sendo desativado, o dispositivo está prestes a ser removido ou um rebalanceamento 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 marcar WdfPowerDeviceD3Final e, em seguida, fazer o trabalho de limpeza para remoção do dispositivo. Por exemplo, se um dispositivo que entrou no estado de energia Dx devido à idling out for removido posteriormente, seu EvtDeviceD0Exit não será chamado novamente. O lugar 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ção.

Requisitos

Requisito Valor
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

Confira também

EvtDeviceD0Entry