Поделиться через


Предоставление сведений о контексте ISR

При входе ISR получает указатель на любую область контекста, настроенную драйвером при вызове IoConnectInterruptEx для регистрации подпрограммы.

Большинство драйверов устанавливают указатель контекста на объект устройства, представляющий физическое устройство, которое создает прерывания, или на расширение этого объекта устройства. В расширении устройства драйвер может хранить сведения о состоянии двух подпрограмм драйвера: ISR и DpcForIsr, которые обычно выполняют почти всю обработку ввода-вывода для удовлетворения каждого запроса, вызвавшего прерывание устройства.

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

(Кроме того, указатели объектов прерывания можно хранить в непагированном пуле, который драйвер выделяет.)