Общие сведения о процедурах прерывания обслуживания

Драйвер физического устройства, получающего прерывания, регистрирует одну или несколько процедур обслуживания прерываний (ISR) для обслуживания прерываний. Система вызывает ISR каждый раз, когда получает это прерывание.

Устройства для портов и автобусов до PCI 2.2 создают прерывания на основе линий. Устройство создает прерывание, отправляя электрический сигнал на выделенный контакт, известный как линия прерывания. Версии Microsoft Windows до Windows Vista поддерживают только прерывания на основе строк.

Начиная с PCI 2.2, устройства PCI могут создавать прерывания, сигнализируют о сообщениях. Устройство создает прерывание с сигналом сообщения, записывая значение данных на определенный адрес. Операционные системы Windows Vista и более поздних версий поддерживают прерывания как на основе строк, так и на основе сообщений.

Система поддерживает два разных типа ISR:

  • Драйвер может зарегистрировать подпрограмму InterruptService для обработки прерываний на основе строк или сообщений. (Это единственный тип, доступный до Windows Vista.) Система передает предоставленное драйвером значение контекста.

  • Драйвер может зарегистрировать подпрограмму InterruptMessageService для обработки прерываний, сигналируемых сообщениями. Система передает как предоставленное драйвером значение контекста, так и идентификатор сообщения прерывания.

Дополнительные сведения о регистрации подпрограммы InterruptService или InterruptMessageService для обслуживания прерываний устройства см. в статье Общие сведения о прерываниях Message-Signaled.