Introduzione alle routine del servizio di interruzione
Un driver di un dispositivo fisico che riceve interruzioni registra una o più routine di servizio di interruzione (ISR) per gestire gli interruzioni. Il sistema chiama l'ISR ogni volta che riceve tale interruzione.
I dispositivi per porte e autobus precedenti a PCI 2.2 generano interruzioni basate su linea. Un dispositivo genera l'interruzione inviando un segnale elettrico su un pin dedicato noto come linea di interruzione. Le versioni di Microsoft Windows precedenti a Windows supportano solo interruzioni basate su riga.
A partire da PCI 2.2, i dispositivi PCI possono generare interruzioni segnalate da messaggi. Un dispositivo genera un interruzione segnalato dal messaggio scrivendo un valore di dati in un indirizzo specifico. Windows Vista e i sistemi operativi successivi supportano interruzioni basate su riga e messaggi.
Il sistema supporta due tipi diversi di ISR:
Il driver può registrare una routine di InterruptService per gestire interruzioni basate su riga o segnalate da messaggi. Questo è l'unico tipo disponibile prima di Windows Vista. Il sistema passa un valore di contesto fornito dal driver.
Il driver può registrare una routine InterruptMessageService per gestire gli interruzioni segnalate dai messaggi. Il sistema passa sia un valore di contesto fornito dal driver che l'ID messaggio del messaggio di interruzione.
Per altre informazioni sulla registrazione di una routine InterruptService o InterruptMessageService per il servizio degli interruzioni del dispositivo, vedere Introduzione alle interruzioni Message-Signaled.