Compartir a través de


Directrices de diseño para iniciar dispositivos

  • El administrador de PnP produce un error al crear solicitudes para el dispositivo hasta que se completa el irP de IRP_MN_START_DEVICE , lo que indica que todos los controladores del dispositivo han realizado sus operaciones de inicio.

  • Dado que una rutina DispatchPnP se ejecuta en el contexto de un subproceso del sistema en irQL PASSIVE_LEVEL, cualquier memoria asignada con ExAllocatePoolWithTag para su uso exclusivo durante la inicialización puede ser del grupo paginado siempre que el controlador no controle el dispositivo que contiene un archivo de página del sistema. Dicha asignación de memoria debe liberarse con ExFreePool antes de que la rutina DispatchPnP devuelva el control.

  • Un ISR del controlador de dispositivo WDM debe ser capaz de determinar si se ha llamado con una interrupción falsa incluso durante el inicio del dispositivo. Al volver de la llamada a IoConnectInterrupt en la ruta de acceso de código que controla IRP_MN_START_DEVICE, se puede llamar al ISR inmediatamente si las interrupciones están habilitadas en el dispositivo.