Partilhar via


Transições de estado para dispositivos PnP

Em um sistema PnP, um dispositivo faz a transição por vários estados PnP conforme ele é 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 de 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 na parte superior esquerda 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 é conhecido 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 para o 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 como relatar e enumerar 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 de um 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á 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 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 Parando um dispositivo. (Os drivers de um dispositivo configurado para inicialização podem receber IRP_MN_QUERY_STOP_DEVICE e IRP_MN_STOP_DEVICE solicitações antes de o dispositivo ser iniciado, embora essa etapa não seja mostrada na figura anterior.)

No Windows 98/Me, o gerenciador de PnP também envia solicitações de 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 de 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 tiverem sido removidos, o gerenciador PnP chamará a rotina Descarregue do driver e descarregará o driver.