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