Instrucciones de diseño de controladores PnP

Plug and Play proporciona:

  • Reconocimiento automático y dinámico del hardware instalado

  • Asignación de recursos de hardware (y reasignación)

  • Carga de los controladores adecuados

  • Una interfaz para que los controladores interactúen con el sistema PnP

  • Mecanismos para que los controladores y las aplicaciones conozcan los cambios en el entorno de hardware

Para admitir PnP, un controlador debe seguir estas directrices:

  • Debe contener una rutina DispatchPnP .

    Esta rutina de distribución debe controlar las IRP_MJ_PNP y los códigos de función secundaria asociados. Para obtener más información, vea DispatchPnP Routines( Rutinas de DispatchPnP).

  • No debe buscar hardware.

    El administrador de PnP es responsable de determinar la presencia de dispositivos de hardware. Cuando el administrador de PnP detecta un dispositivo, lo notifica al controlador mediante una llamada a su rutina AddDevice . El hardware se puede detectar cuando se arranca el sistema, o en cualquier momento en que un usuario agrega un dispositivo a un sistema en ejecución o lo quita de él.

  • No debe asignar recursos de hardware.

    Un controlador PnP debe proporcionar al administrador de PnP listas de recursos que un dispositivo puede usar potencialmente. El administrador de PnP es responsable de asignar recursos a cada dispositivo y de notificar al controlador las asignaciones de cada dispositivo cuando envía una solicitud IRP_MN_START_DEVICE dispositivo. Por lo tanto, el controlador debe ser capaz de trabajar con varias configuraciones de recursos de hardware.

Algunos controladores se aíslan de los detalles del PnP y la administración de energía mediante controladores de clase o puerto proporcionados por el sistema. Por ejemplo, un controlador de puerto SCSI aísla un controlador de minipuerto SCSI de muchos de los detalles de los sistemas power y PnP, por lo que no es necesario que un controlador de miniporte SCSI controle la alimentación y los PNP directamente. Para estos controladores, consulte la documentación específica del controlador para obtener más información sobre la compatibilidad necesaria con PnP.