Compartilhar via


Transições de estado para dispositivos PnP

Em um sistema PnP, um dispositivo faz a transição por vários estados PnP à medida que está configurado, iniciado, possivelmente interrompido para reequilibrar recursos e possivelmente removido. Esta seção fornece uma visão geral dos estados do dispositivo PnP. A visão geral é um roteiro para grande parte do suporte PnP necessário em um driver. Outras partes desta documentação descrevem cada transição de estado em detalhes.

A figura a seguir mostra os estados PnP para um dispositivo e como um dispositivo faz a transição de um estado para outro.

diagrama ilustrando os estados do dispositivo da perspectiva de plug-and-play.

Começando no canto superior esquerdo da figura anterior, um dispositivo PnP está fisicamente presente no sistema porque o usuário acabou de inserir o dispositivo ou o dispositivo estava presente no momento da inicialização. O dispositivo ainda não foi reconhecido pelo software do sistema.

Para iniciar a configuração de software para o dispositivo, o gerenciador PnP e o driver de barramento pai enumeram o dispositivo. O gerenciador PnP, possivelmente com a ajuda de componentes do modo de usuário, identifica os drivers do dispositivo, incluindo o driver de função e quaisquer drivers de filtro opcionais. O gerenciador PnP chamará a rotina DriverEntry de cada driver se o driver ainda não estiver carregado. Para obter mais informações sobre relatórios e enumeração de um dispositivo PnP, consulte Adicionando um dispositivo PnP a um sistema em execução.

Depois que um driver é inicializado, ele deve estar pronto para inicializar seus dispositivos. O gerenciador PnP chama a rotina AddDevice do driver para cada dispositivo que ele controla.

Quando um driver recebe uma solicitação IRP_MN_START_DEVICE do gerenciador PnP, o driver inicia o dispositivo e está pronto para processar solicitações de E/S para o dispositivo. Para obter informações sobre como lidar com uma solicitação de IRP_MN_START_DEVICE , consulte Como iniciar um dispositivo.

Se o gerenciador PnP precisar reconfigurar os recursos de hardware de um dispositivo ativo, ele enviará IRP_MN_QUERY_STOP_DEVICE e IRP_MN_STOP_DEVICE solicitações para os drivers do dispositivo. Depois de reconfigurar os recursos de hardware, o gerenciador PnP orienta os drivers a reiniciar o dispositivo enviando uma solicitação IRP_MN_START_DEVICE . Para obter informações sobre como lidar com IRPs de parada, consulte Interrompendo um dispositivo. (Os drivers de um dispositivo configurado para inicialização podem receber solicitações IRP_MN_QUERY_STOP_DEVICE e IRP_MN_STOP_DEVICE antes do dispositivo ser iniciado, embora essa etapa não seja mostrada na figura anterior.)

No Windows 98/Me, o gerenciador PnP também envia solicitações IRP_MN_QUERY_STOP_DEVICE e IRP_MN_STOP_DEVICE quando um dispositivo está sendo desabilitado. Os drivers nesses sistemas também recebem uma solicitação IRP_MN_STOP_DEVICE após um início com falha.

Quando um dispositivo PnP está sendo fisicamente removido do sistema ou já foi removido, o gerenciador PnP envia vários IRPs de remoção para os drivers do dispositivo, direcionando-os para remover a representação de software do dispositivo (objetos de dispositivo e assim por diante). Para obter informações sobre como lidar com a remoção de IRPs, consulte Removendo um dispositivo.

Em algum momento, depois que todos os dispositivos de um driver foram removidos, o gerenciador PnP chama a rotina de descarga do driver e descarrega o driver.