Directrices de diseño del controlador 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 controladores adecuados
Interfaz para que los controladores interactúen con el sistema PnP
Mecanismos para controladores y aplicaciones para obtener información sobre los cambios en el entorno de hardware
Para admitir PnP, un controlador debe seguir estas directrices:
Debe contener una rutina DispatchPnP .
Esta rutina de envío debe controlar IRP_MJ_PNP solicitudes y códigos de función menores asociados. Para obtener más información, vea DispatchPnP Routines.
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, 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 o quita uno de un sistema en ejecución.
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 notificar al controlador de las asignaciones de cada dispositivo cuando envía una solicitud de IRP_MN_START_DEVICE . Por lo tanto, el controlador debe ser capaz de trabajar con varias configuraciones de recursos de hardware.
Algunos controladores están aislados de los detalles del PnP y la administración de energía por el puerto o los controladores de clase suministrados por el sistema. Por ejemplo, un controlador de puerto SCSI aísla un controlador de miniporte SCSI de muchos de los detalles de los sistemas de alimentación y PnP, por lo que un controlador de minipuerto SCSI no necesita controlar la alimentación y los IRP PnP directamente. Para estos controladores, consulte la documentación específica del controlador para obtener más información sobre la compatibilidad con PnP necesaria.