Programación de un dispositivo para una operación de E/S
Use las siguientes directrices generales para diseñar, escribir y llamar a rutinas SynchCritSection que programan un dispositivo para operaciones de E/S:
Rutina SynchCritSection que programa el dispositivo para las operaciones de E/S debe devolver el control lo antes posible.
Por este motivo, la rutina SynchCritSection solo debe hacer lo necesario para configurar el dispositivo para E/S. Por lo tanto, el controlador debe realizar todo el preprocesamiento irP, inicializar la información de estado para otras rutinas de controlador y adquirir recursos de hardware antes de llamar a la rutina SynchCritSection .
Un controlador de dispositivo puede tener varias rutinas SynchCritSection para programar el dispositivo.
Por ejemplo, el controlador de un dispositivo para el que configurar una solicitud de lectura difiere marcadamente de la configuración de determinadas solicitudes de control de dispositivo podría tener rutinas synchCritSection independientes para programar su dispositivo para cada tipo de solicitud.
Cada rutina SynchCritSection debe devolver el control lo antes posible, ya que la ejecución de cualquier rutina SynchCritSection impide que se ejecute el ISR del controlador.
No debe escribir una rutina SynchCritSection de uso general única y grande con una instrucción switch o con muchas propiedades anidadas if.. Entonces.. instrucciones else para determinar qué operaciones llevará a cabo o qué información de estado se va a actualizar. Por otro lado, debes evitar escribir numerosas rutinas SynchCritSection que programe solo un registro de dispositivo.