Compartilhar via


Introdução às rotinas de serviço de interrupção

Um driver de um dispositivo físico que recebe interrupções registra uma ou mais ISRs (rotinas de serviço de interrupção) para atender às interrupções. O sistema chama o ISR sempre que recebe essa interrupção.

Dispositivos para portas e ônibus antes da PCI 2.2 geram interrupções baseadas em linha. Um dispositivo gera a interrupção enviando um sinal elétrico em um pino dedicado conhecido como uma linha de interrupção. As versões do Microsoft Windows anteriores ao Windows Vista dão suporte apenas a interrupções baseadas em linha.

A partir do PCI 2.2, os dispositivos PCI podem gerar interrupções sinalizadas por mensagem. Um dispositivo gera uma interrupção sinalizada por mensagem gravando um valor de dados em um endereço específico. O Windows Vista e sistemas operacionais posteriores dão suporte a interrupções baseadas em linha e sinalizadas por mensagem.

O sistema dá suporte a dois tipos diferentes de ISRs:

  • O driver pode registrar uma rotina InterruptService para lidar com interrupções baseadas em linha ou sinalizadas por mensagem. (Este é o único tipo disponível antes do Windows Vista.) O sistema passa um valor de contexto fornecido pelo driver.

  • O driver pode registrar uma rotina InterruptMessageService para lidar com interrupções sinalizadas por mensagem. O sistema passa um valor de contexto fornecido pelo driver e a ID da mensagem de interrupção.

Para obter mais informações sobre como registrar uma rotina InterruptService ou InterruptMessageService para atender às interrupções do dispositivo, consulte Introdução a interrupções de Message-Signaled.