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.
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 |