Compartilhar via


Um usuário desconecta um dispositivo (UMDF 1)

Aviso

O UMDF 2 é a versão mais recente do UMDF e substitui o UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Drivers universais do Windows devem usar UMDF 2.

Os exemplos umdf 1 arquivados podem ser encontrados no Windows 11, versão 22H2 – Atualização de exemplos de driver de maio de 2022.

Para obter mais informações, consulte Introdução com UMDF.

Enquanto um sistema está em execução, um usuário pode remover um dispositivo de uma das duas maneiras a seguir: por remoção ordenada, o que significa que o usuário informa ao sistema que o dispositivo está prestes a ser removido (por exemplo, usando o programa Desconectar ou Ejetar Hardware); ou por remoção surpresa, o que significa que o usuário desconecta o dispositivo sem informar o sistema. Se o barramento der suporte à remoção surpresa (por exemplo, USB), os drivers do dispositivo deverão ser capazes de lidar com o desaparecimento repentino do dispositivo.

Remoção ordenada
O usuário solicita a remoção usando o programa Desconectar ou Ejetar Hardware do sistema, desabilitando o dispositivo usando Gerenciador de Dispositivos ou pressionando o botão de ejeção de um dispositivo ejetável. A estrutura permite que o dispositivo seja removido ou desabilitado, a menos que o driver tenha fornecido uma função de retorno de chamada IPnpCallback::OnQueryRemove e a função de retorno de chamada tenha vetado a remoção.

A figura a seguir mostra a sequência de retornos de chamada UMDF na desligar e remover. A sequência começa na parte superior da figura com um dispositivo que está no estado de energia de trabalho (D0).

Fluxograma que mostra a desligar o dispositivo e a sequência de remoção ordenada para um driver UMDF.

Remoção surpresa
Nesse cenário, um usuário desconecta um dispositivo inesperadamente. Na sequência de remoção surpresa, o UMDF chama o retorno de chamada IPnpCallback::OnSurpriseRemoval para notificar o driver de que o dispositivo foi removido inesperadamente. Não há garantia de que esse retorno de chamada ocorra em nenhuma ordem específica com os outros retornos de chamada na sequência de remoção.

Em geral, o driver deve evitar acessar o hardware no caminho de remoção. O refletor atinge o tempo limite se uma tentativa de acessar o hardware aguardar indefinidamente. A figura a seguir mostra a sequência de remoção surpresa para um driver UMDF.

Fluxograma que mostra a sequência de remoção surpresa para um driver UMDF.