Partilhar via


Transições de estado para dispositivos PnP

Em um sistema PnP, um dispositivo transita por vários estados PnP à medida que é 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 controlador. Outras partes desta documentação descrevem cada transição de estado em detalhes.

A figura a seguir mostra os estados PnP de um dispositivo e como um dispositivo transita de um estado para outro.

diagrama ilustrando os estados do dispositivo a partir da perspetiva 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 de modo de usuário, identifica os drivers para o dispositivo, incluindo o driver de função e quaisquer drivers de filtro opcionais. O gestor PnP chama a rotina DriverEntry de cada driver se o driver ainda não estiver carregado. Para obter mais informações sobre como relatar e enumerar um dispositivo PnP, consulte Adicionando um dispositivo PnP a um sistema em execução.

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

Quando um driver recebe uma solicitação de 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 Iniciando um dispositivo.

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

No Windows 98/Me, o gestor PnP também envia solicitações IRP_MN_QUERY_STOP_DEVICE e IRP_MN_STOP_DEVICE quando um dispositivo está a ser desativado. Os drivers nesses sistemas recebem uma solicitação IRP_MN_STOP_DEVICE também após uma falha na inicialização.

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 controlador foram removidos, o gestor PnP chama a rotina de Unload do controlador e descarrega o controlador.