Control de una solicitud de IRP_MN_REMOVE_DEVICE

El administrador de PnP usa este IRP para dirigir los controladores para quitar la representación de software de un dispositivo (objetos de dispositivo, etc.). El administrador de PnP envía este IRP cuando un dispositivo se ha quitado de forma ordenada (por ejemplo, iniciado por un usuario en el programa Desconectar o expulsar hardware), por sorpresa (un usuario extrae el dispositivo de su ranura sin previo aviso) o cuando el usuario solicita actualizar controladores.

En los sistemas Windows 2000 y versiones posteriores, el administrador de PnP envía este IRP cuando Administrador de dispositivos deshabilita el dispositivo. En Windows 98/Me, el administrador de PnP envía irP stop en su lugar. Consulte Detener un dispositivo para obtener más información.

El administrador de PnP hace lo siguiente antes de enviar este IRP a los controladores de un dispositivo:

  • Envía IRP_MN_REMOVE_DEVICE solicitudes a los elementos secundarios del dispositivo, si los hay.

  • Notifica a los componentes del modo de usuario y los controladores en modo kernel que se registraron para notificar que el dispositivo se está quitando. El administrador de PnP llama a los componentes en modo de usuario registrados para la notificación de dispositivo de destino en un identificador del dispositivo y llama a los controladores en modo kernel registrados para EventCategoryTargetDeviceChange.

  • (En los sistemas Windows 2000 y versiones posteriores) Si se monta un sistema de archivos en el dispositivo, el administrador de PnP envía una solicitud de eliminación al sistema de archivos y a cualquier filtro del sistema de archivos. En respuesta, un sistema de archivos normalmente desmonta el volumen.

El controlador superior de una pila de dispositivos controla un IRP quita y lo pasa al siguiente controlador inferior. El controlador de autobús primario de un dispositivo es el último controlador para realizar sus operaciones de eliminación de dispositivos. Los controladores de controlador quitan irP en su rutina DispatchPnP .

Antes de que un controlador devuelva el éxito de una solicitud de IRP_MN_REMOVE_DEVICE , debe asegurarse de que se han liberado todos los recursos del dispositivo. Este IRP podría ser la última llamada antes de que se descargue el controlador.

La eliminación de un dispositivo puede crear la necesidad de quitar una serie de otros dispositivos. El administrador de PnP coordina la eliminación de los objetos de dispositivo adicionales del nivel superior hacia abajo hasta el nivel de dispositivo raíz.

En esta sección se describe:

Eliminación de un dispositivo en un controlador de funciones

Eliminación de un dispositivo en un controlador de filtro

Eliminación de un dispositivo en un controlador de bus