Inicio de un dispositivo

El administrador de PnP envía una solicitud de IRP_MN_START_DEVICE a los controladores para iniciar un dispositivo recién enumerado o para reiniciar un dispositivo existente que se detuvo para el reequilibrio de recursos.

Los controladores de función y filtro deben establecer una rutina de IoCompletion , pasar la IRP_MN_START_DEVICE solicitar la pila del dispositivo y posponer sus operaciones de inicio hasta que todos los controladores inferiores hayan terminado con irP. El controlador de bus primario, el controlador inferior de la pila de dispositivos, debe ser el primer controlador para realizar sus operaciones de inicio en un dispositivo antes de que otros controladores accedan al dispositivo.

Para garantizar la secuenciación adecuada de las operaciones de inicio, el administrador de PnP en Windows 2000 y versiones posteriores de Windows pospone exponer interfaces de dispositivo y bloquea la creación de solicitudes para el dispositivo hasta que el IRP de inicio se realice correctamente.

Si un controlador de un dispositivo produce un error en la solicitud de IRP_MN_START_DEVICE , el administrador de PnP envía una solicitud de IRP_MN_REMOVE_DEVICE a la pila de dispositivos (en Windows 2000 y versiones posteriores de Windows). En respuesta a este IRP, los controladores del dispositivo deshacen sus operaciones de inicio (si se realizaron correctamente en irP de inicio), deshacen sus operaciones AddDevice y se desasocian de la pila de dispositivos. El administrador de PnP marca este tipo de dispositivo "error de inicio".

En esta sección se describen los temas siguientes:

Iniciar un dispositivo en un controlador de función

Iniciar un dispositivo en un controlador de filtro

Iniciar un dispositivo en un controlador de bus

Directrices de diseño para iniciar dispositivos