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


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

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

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

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

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