Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Se o usuário remover o dispositivo sem aviso, simplesmente desconectando-o sem usar o Gerenciador de Dispositivos ou o utilitário Remover Hardware com segurança, o dispositivo será considerado "removido de surpresa". Quando isso ocorre, a estrutura segue uma sequência de remoção ligeiramente diferente. Ele também segue a sequência de remoção surpresa se outro driver chamar IoInvalidateDeviceState no dispositivo, mesmo que o dispositivo ainda esteja fisicamente presente. Na sequência de remoção surpresa, o framework chama o retorno de chamada EvtDeviceSurpriseRemoval antes de chamar qualquer um dos outros retornos de chamada na sequência de remoção. Quando a sequência é concluída, a estrutura destrói o objeto do dispositivo. Os drivers de todos os dispositivos removíveis devem garantir que os retornos de chamada durante os processos de desligamento e inicialização possam lidar com falhas, especialmente aquelas causadas pela remoção do hardware. Qualquer tentativa de acessar o hardware não deve esperar indefinidamente, mas deve estar sujeita a timeouts ou a um watchdog timer.
O diagrama a seguir mostra os retornos de chamada envolvidos em uma remoção inesperada.
Se o dispositivo não estava no estado operacional quando foi removido, o framework chama o retorno de chamada de evento EvtDeviceReleaseHardware imediatamente após EvtDeviceSurpriseRemoval. Ele omite as etapas de intervenção, que já foram executadas quando o dispositivo saiu do estado de trabalho.