Pull to refresh

Comments 6

В целом, насколько я понял, UEFI специфики здесь нет. Скорее здесь информация о том как добавить поддержку структурных исключений для исключений процессора для PE образов, собранных компилятором MSVC.

Тоже самое в принципе, можно сделать и на BIOS окружении.

Вот кстати, ребята пошли еще дальше, и сделали поддержку плюсовых исключений в ядре Windows: правда проект скорее мертв чем жив, но посмотреть там есть на что.
А разрешено ли подменять обработчики процессорных исключений согласно UEFI спеке?
Я понимаю, что сделать это можно, но насколько это легитимно?

На EDK-шной реализации UEFI спеки я бы еще понял, но на чистом UEFI — тут вопрос?
Спецификацией это допускается, если IDT будет изолирован.
В исключениях и не может быть UEFI специфики. Здесь информация о том, что необходимо реализовать, чтобы данный механизма работал вне среды Windows. UEFI лишь демонстрация.

Относительно поддержки C++ исключений в ядре Windows, по моему разумению это не совсем корректное сравнение, т.к. задачи несколько разные.
А я и не пытался сравнивать. Просто от поддержки структурных исключений до поддержки плюсовых — пара шагов. Самое сложное то вы сделали — поиск обработчика.

Насколько я помню, плюсовые исключения можно сделать через структурные исключения, ну только там еще нужно будет функцию сделать, что-то типа _CxxThrowException
Я бы не сказал что пара, но в целом остается не так много. Все усложняет тем что возможно потребуется исследование, я не интересовался вопросом, но информации может не хватить. Обработчики то другие. Кроме функции __CxxThrowException есть еще например __CxxFrameHandler3_0. И так далее.
Sign up to leave a comment.