Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы


Драйвер видеоконтроллера


Драйвер видеоконтроллера оказывает решающее влияние на производительность Windows как операционной системы с графическим интерфейсом пользователя. Поэтому он составляется, как правило, на языке ассемблера.

В состав дистрибутива Windows входят драйверы лишь для ограниченного набора видеоконтроллеров. В частности, имеется драйвер для видеоконтроллера VGA, с которым совместимы практически все современные видеоконтроллеры. Для реализации режимов SVGA производители видеоконтроллеров создают собственные драйверы и поставляют их в комплекте со своими изделиями.

Как мы уже говорили в 14 томе "Библиотеки системного программиста", приложения Windows работают с видеоконтроллером и принтером через интерфейс графических устройств GDI, реализованный как DLL-библиотека gdi.exe. Этот интерфейс обеспечивает независимость приложений от особенностей физической аппаратуры.

Модули интерфейса GDI не работают с регистрами видеоадаптера или принтера, а обращаются к соответствующим драйверам. Заметим, что драйвер видеоадаптера вызывается для выполнения операций достаточно высокого уровня, например, рисования линии или закрашивания области. Если драйвер не поддерживает нужную операцию, GDI выполняет ее самостоятельно. Однако только драйвер может выполнять операции наиболее быстрым образом, так как GDI "не знает" особенностей аппаратуры.

Если Windows работает в расширенном режиме, в дело включается виртуальный драйвер видеоконтроллера, который выполняет операции ввода/вывода над регистрами видеоконтроллера и осуществляет запись данных в видеопамять. В составе DDK есть исходные тексты виртуальных драйверов для некоторых типов видеоконтроллеров, таких как CGA, EGA и VGA. Основная задача виртуального драйвера видеоконтроллера заключается в координации коллективного доступа к аппаратуре видеоконтроллера со стороны виртуальных машин MS-DOS и системной виртуальной машины, в которой работают приложения Windows.

В последнее время в качестве видеоконтроллера обычно используется так называемый ускоритель Windows (Windows Accelerator), способный выполнять многие графические операции на аппаратном уровне без загрузки центрального процессора компьютера.


Начало  Назад  Вперед



Книжный магазин