Présentation des routines de service d’interruption
Un pilote d’un appareil physique qui reçoit des interruptions inscrit une ou plusieurs routines de service d’interruption (ISR) pour traiter les interruptions. Le système appelle l’ISR chaque fois qu’il reçoit cette interruption.
Les appareils pour les ports et les bus antérieurs à la norme PCI 2.2 génèrent des interruptions basées sur les lignes. Un appareil génère l’interruption en envoyant un signal électrique sur une broche dédiée appelée ligne d’interruption. Les versions de Microsoft Windows antérieures à Windows Vista prennent uniquement en charge les interruptions basées sur les lignes.
À compter de PCI 2.2, les appareils PCI peuvent générer des interruptions signalées par des messages. Un appareil génère une interruption signalée par un message en écrivant une valeur de données dans une adresse particulière. Windows Vista et les systèmes d’exploitation ultérieurs prennent en charge les interruptions basées sur les lignes et les messages signalés.
Le système prend en charge deux types d’ISR différents :
Le pilote peut inscrire une routine InterruptService pour gérer les interruptions basées sur les lignes ou les messages signalés. (Il s’agit du seul type disponible avant Windows Vista.) Le système transmet une valeur de contexte fournie par le pilote.
Le pilote peut inscrire une routine InterruptMessageService pour gérer les interruptions signalées par les messages. Le système transmet à la fois une valeur de contexte fournie par le pilote et l’ID de message du message d’interruption.
Pour plus d’informations sur l’inscription d’une routine InterruptService ou InterruptMessageService pour traiter les interruptions de l’appareil, consultez Présentation des interruptions Message-Signaled.