Transiciones de estado para dispositivos PnP
En un sistema PnP, un dispositivo realiza la transición a través de varios estados de PnP a medida que está configurado, iniciado, posiblemente detenido para reequilibrar los recursos y, posiblemente, quitarlos. En esta sección se proporciona información general sobre los estados del dispositivo PnP. La información general es un mapa de ruta para gran parte de la compatibilidad de PnP necesaria en un controlador. Otras partes de esta documentación describen detalladamente cada transición de estado.
En la ilustración siguiente se muestran los estados PnP de un dispositivo y cómo un dispositivo pasa de un estado a otro.
A partir de la parte superior izquierda de la ilustración anterior, un dispositivo PnP está presente físicamente en el sistema porque el usuario acaba de insertar el dispositivo o el dispositivo estaba presente en el momento del arranque. El dispositivo aún no es conocido por el software del sistema.
Para comenzar la configuración de software para el dispositivo, el administrador de PnP y el controlador de bus primario enumeran el dispositivo. El administrador de PnP, posiblemente con ayuda de los componentes del modo de usuario, identifica los controladores del dispositivo, incluido el controlador de función y los controladores de filtro opcionales. El administrador de PnP llama a la rutina DriverEntry de cada controlador si el controlador aún no está cargado. Para obtener más información sobre la creación de informes y la enumeración de un dispositivo PnP, consulte Agregar un dispositivo PnP a un sistema en ejecución.
Una vez inicializado un controlador, debe estar listo para inicializar sus dispositivos. El administrador de PnP llama a la rutina AddDevice de un controlador para cada dispositivo que controla el controlador.
Cuando un controlador recibe una solicitud de IRP_MN_START_DEVICE del administrador de PnP, el controlador inicia el dispositivo y está listo para procesar solicitudes de E/S para el dispositivo. Para obtener información sobre cómo controlar una solicitud de IRP_MN_START_DEVICE , consulte Inicio de un dispositivo.
Si el administrador de PnP debe volver a configurar los recursos de hardware de un dispositivo activo, envía IRP_MN_QUERY_STOP_DEVICE y IRP_MN_STOP_DEVICE solicitudes a los controladores del dispositivo. Después de volver a configurar los recursos de hardware, el administrador de PnP dirige los controladores para reiniciar el dispositivo mediante el envío de una solicitud de IRP_MN_START_DEVICE . Para obtener información sobre cómo controlar los IRP de detención, consulte Detener un dispositivo. (Los controladores de un dispositivo configurado para arranque pueden recibir IRP_MN_QUERY_STOP_DEVICE y IRP_MN_STOP_DEVICE solicitudes antes de que se haya iniciado el dispositivo, aunque este paso no se muestra en la ilustración anterior).
En Windows 98/Me, el administrador de PnP también envía IRP_MN_QUERY_STOP_DEVICE y IRP_MN_STOP_DEVICE solicitudes cuando se deshabilita un dispositivo. Los controladores de estos sistemas también reciben una solicitud de IRP_MN_STOP_DEVICE después de un inicio erróneo.
Cuando un dispositivo PnP se quita físicamente del sistema o ya se ha quitado, el administrador de PnP envía varios IRP quitados a los controladores del dispositivo, lo que los dirige para quitar la representación de software del dispositivo (objetos de dispositivo, etc.). Para obtener información sobre cómo controlar los IRP de eliminación, consulte Eliminación de un dispositivo.
En algún momento después de que se hayan quitado todos los dispositivos de un controlador, el administrador de PnP llama a la rutina De descarga del controlador y descarga el controlador.