Функция 68, подфункция 24 - установить обработчик исключений.
Параметры:
- eax = 68 - номер функции
- ebx = 24 - номер подфункции
- ecx = адрес нового обработчика исключений
- edx = маска обрабатываемых исключений
Возвращаемое значение:
- eax = адрес старого обработчика исключений (0, если не установлен)
- ebx = маска старого обработчика исключений
Замечания:
- Номер бита в маске исключений соответствует номеру исключения по
спецификации на процессор (Intel-PC). Так, например, исключения
FPU имеют номер 16 (#MF), а SSE - 19 (#XF).
- В данной реализации игнорируется запрос на перехват исключения 7
- система обрабатывает #NM самостоятельно.
- Пользовательский обработчик получает номер исключения параметром
в стеке. Поэтому правильный выход из обработчика: RET 4. Возврат
при этом производится на команду, вызвавшую исключение.
- При передаче управления обработчику исключений сбрасывается
соответствующий бит в маске исключений. Возникновение этого же
исключения впоследствии приведёт к умолчальной обработке такового.
А именно: к завершению работы приложения в отсутствии отладчика,
приостановка с уведомлением отлаживающего приложения иначе.
- После завершения критических действий в обработчике пользователя
восстановление бита маски данного исключения можно сделать
подфункцией 25. Сброс флагов исключений в модулях FPU и XMM также
возлагается на обработчик пользователя.