Основы программирования в Win32API. Марапулец Ю.В. - 107 стр.

UptoLike

Составители: 

Указанная таблица содержит 32 записи, по одной для каждого уровня запроса
прерывания. Каждая из таких записей указывает на подпрограмму обработки
прерывания или на последовательную цепочку таких подпрограммв том слу-
чае, если несколько устройств используют один и тот же IRQL.
При загрузке в систему новый драйвер устройства записывает в IDT соб-
ственный обработчик. Драйверы делают это путем создания и подключения
объекта-прерывания, т. е. структуры, содержащей всю информацию, необхо-
димую ядру для дополнения IDT. С помощью объекта-прерывания драйверы
получают возможность зарегистрировать свои обработчики прерываний, ниче-
го не зная ни об аппаратном устройстве, ни о структуре таблицы распределе-
ния прерываний.
Любое порожденное исключение должно быть обработано если не самой
программой, то операционной системой, точнее, должна откликнуться опреде-
ленная подпрограмма, которая обработает и снимет исключение. Следователь-
но, обработка исключений заключается в создании специальных блоков про-
граммного кода, которые запускаются при возникновении исключительных
ситуаций. Каждое приложение должно содержать несколько маленьких обра-
ботчиков, защищающих различные части программы от всевозможных исклю-
чений.
В процессе поиска соответствующего блока программного кода, предна-
значенного для конкретной исключительной ситуации, система сначала про-
сматривает текущую процедуру, затем возвращается назад по стеку вызовов,
просматривает другие активные отложенные процедуры того же процесса и,
наконец, переходит к системным обработчикам исключений. Если процесс,
породивший исключение, находится под защитой отладчика, последний также
получает шанс обработать исключение.
Средства обработки ошибок в различных подсистемах и языках програм-
мирования несколько отличаются друг от друга. Например, WOW-подсистема
(Windows on Win32 – защищенная подсистема, выполняющаяся внутри про-
цесса виртуальной DOS-машины) должна обрабатывать все исключения непо-
средственно, поскольку клиенты Winl6 не имеют возможности делать это са-
мостоятельно. Кроме того, в различных языках программирования может
сильно различаться синтаксис операторов обработки исключений. Термин
структурированная обработка исключений подразумевает, что язык содержит
определенную управляющую структуру, связанную с исключениями.
107
Указанная таблица содержит 32 записи, по одной для каждого уровня запроса
прерывания. Каждая из таких записей указывает на подпрограмму обработки
прерывания или на последовательную цепочку таких подпрограмм – в том слу-
чае, если несколько устройств используют один и тот же IRQL.
     При загрузке в систему новый драйвер устройства записывает в IDT соб-
ственный обработчик. Драйверы делают это путем создания и подключения
объекта-прерывания, т. е. структуры, содержащей всю информацию, необхо-
димую ядру для дополнения IDT. С помощью объекта-прерывания драйверы
получают возможность зарегистрировать свои обработчики прерываний, ниче-
го не зная ни об аппаратном устройстве, ни о структуре таблицы распределе-
ния прерываний.
     Любое порожденное исключение должно быть обработано если не самой
программой, то операционной системой, точнее, должна откликнуться опреде-
ленная подпрограмма, которая обработает и снимет исключение. Следователь-
но, обработка исключений заключается в создании специальных блоков про-
граммного кода, которые запускаются при возникновении исключительных
ситуаций. Каждое приложение должно содержать несколько маленьких обра-
ботчиков, защищающих различные части программы от всевозможных исклю-
чений.
     В процессе поиска соответствующего блока программного кода, предна-
значенного для конкретной исключительной ситуации, система сначала про-
сматривает текущую процедуру, затем возвращается назад по стеку вызовов,
просматривает другие активные отложенные процедуры того же процесса и,
наконец, переходит к системным обработчикам исключений. Если процесс,
породивший исключение, находится под защитой отладчика, последний также
получает шанс обработать исключение.
     Средства обработки ошибок в различных подсистемах и языках програм-
мирования несколько отличаются друг от друга. Например, WOW-подсистема
(Windows on Win32 – защищенная подсистема, выполняющаяся внутри про-
цесса виртуальной DOS-машины) должна обрабатывать все исключения непо-
средственно, поскольку клиенты Winl6 не имеют возможности делать это са-
мостоятельно. Кроме того, в различных языках программирования может
сильно различаться синтаксис операторов обработки исключений. Термин
структурированная обработка исключений подразумевает, что язык содержит
определенную управляющую структуру, связанную с исключениями.




                                   107