Как вы получаете графику в текстовом режиме Native NT?

Очевидно, что программа EASEUS Partition Master может отображать графику до запуска графического интерфейса Windows (т. Е. Одновременно с запуском CheckDisk при загрузке).

Что я уже знаю:

  1. Это может потребовать не очень хорошо документированных функций. Я не против.

  2. Я уже знаю, как компилировать нативные исполняемые файлы NT, поэтому не стесняйтесь опускать это в ответах.

Вопросы:

  1. Как вы можете отобразить графику до того, как все запустится? (т.е. какие функции / библиотеки вы используете?)

  2. Как он отображает форматированный и выровненный текст на экране?
    я знаю NtDisplayString способен писать текст, но не может рисовать вещи в отформатированном виде, как вы можете видеть ниже. Какие функции вы используете для воспроизведения поведения ниже?

Скриншот

2 ответа

Решение

Я чувствую себя глупо, отвечая на свой вопрос прямо сейчас, но подсказки Бена помогли мне понять это:

Он использует драйвер, который, в свою очередь, использует эти функции в BootVid.dll:

VidBufferToScreenBlt
VidScreenToBufferBlt
VidBitBlt

Возможно, он использует низкоуровневые VGA-вызовы для переключения в графический режим и управления видеопамятью.

Другие вопросы по тегам