Manipulando uma solicitação de IRP_MN_REMOVE_DEVICE

O gerenciador de PnP usa esse IRP para direcionar drivers para remover a representação de software de um dispositivo (objetos de dispositivo e assim por diante). O gerenciador PnP envia esse IRP quando um dispositivo foi removido de forma ordenada (por exemplo, iniciado por um usuário no programa Desabilitar ou Ejetar Hardware), de surpresa (um usuário retira o dispositivo do slot sem aviso prévio) ou quando o usuário solicita a atualização de drivers.

No Windows 2000 e em sistemas posteriores, o gerenciador PnP envia esse IRP quando Gerenciador de Dispositivos desabilita o dispositivo. No Windows 98/Me, o gerenciador de PnP envia IRPs de parada. Consulte Parando um dispositivo para obter detalhes.

O gerenciador PnP faz o seguinte antes de enviar esse IRP para os drivers de um dispositivo:

  • Envia IRP_MN_REMOVE_DEVICE solicitações para os filhos do dispositivo, se houver.

  • Notifica todos os componentes do modo de usuário e drivers do modo kernel registrados para notificação de que o dispositivo está sendo removido. O gerenciador PnP chama todos os componentes do modo de usuário registrados para notificação de dispositivo de destino em um identificador para o dispositivo e chama todos os drivers do modo kernel registrados para EventCategoryTargetDeviceChange.

  • (No Windows 2000 e em sistemas posteriores) Se um sistema de arquivos estiver montado no dispositivo, o gerenciador PnP enviará uma solicitação de remoção para o sistema de arquivos e todos os filtros do sistema de arquivos. Em resposta, um sistema de arquivos normalmente desmonta o volume.

O driver superior em uma pilha de dispositivos manipula um IRP de remoção e o passa para o próximo driver inferior. O driver de barramento pai de um dispositivo é o último driver a executar suas operações remove-device. Um driver manipula a remoção de IRPs em sua rotina DispatchPnP .

Antes que um driver retorne êxito para uma solicitação de IRP_MN_REMOVE_DEVICE , ele deve garantir que todos os recursos do dispositivo tenham sido liberados. Esse IRP pode ser a última chamada antes que o driver seja descarregado.

Remover um dispositivo pode criar a necessidade de remover uma série de outros dispositivos. O gerenciador PnP coordena a remoção dos objetos de dispositivo adicionais do nível superior até o nível do dispositivo raiz.

Esta seção descreve:

Removendo um dispositivo em um driver de funções

Removendo um dispositivo em um driver de filtro

Removendo um dispositivo em um motorista de ônibus