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