Introducción a las rutinas del servicio de interrupción
Un controlador de un dispositivo físico que recibe interrupciones registra una o varias rutinas de servicio de interrupción (ISR) para atender las interrupciones. El sistema llama al ISR cada vez que recibe esa interrupción.
Los dispositivos para puertos y autobuses anteriores a PCI 2.2 generan interrupciones basadas en líneas. Un dispositivo genera la interrupción enviando una señal eléctrica en un pin dedicado conocido como línea de interrupción. Las versiones de Microsoft Windows anteriores a Windows Vista solo admiten interrupciones basadas en línea.
A partir de PCI 2.2, los dispositivos PCI pueden generar interrupciones señaladas por mensajes. Un dispositivo genera una interrupción señalada por mensaje escribiendo un valor de datos en una dirección determinada. Windows Vista y sistemas operativos posteriores admiten interrupciones basadas en línea y con señales de mensaje.
El sistema admite dos tipos diferentes de ISR:
El controlador puede registrar una rutina InterruptService para controlar las interrupciones basadas en línea o con señal de mensaje. (Este es el único tipo disponible antes de Windows Vista). El sistema pasa un valor de contexto proporcionado por el controlador.
El controlador puede registrar una rutina InterruptMessageService para controlar las interrupciones señaladas por mensajes. El sistema pasa un valor de contexto proporcionado por el controlador y el identificador de mensaje del mensaje de interrupción.
Para obtener más información sobre cómo registrar una rutina InterruptService o InterruptMessageService para atender las interrupciones del dispositivo, consulte Introducción a las interrupciones de Message-Signaled.