Top.Mail.Ru

Написание драйверов для Windows

Написание драйверов для Windows

Драйверы GDI могут предоставлять способ преобразования аппаратно-независимых изображений, так что они могут отображаться на устройстве. GDI выполняет это преобразование в монохромное изображение, выполнение этого преобразования драйвером позволяет использовать знания о возможностях и ограничениях конкретного устройства.

Большинство проблем преобразования возникают с цветными устройствами; таким образом, при разработке драйвера для монохромного устройства нет необходимости в разработке функций поддержки DIB для драйвера. Купить windows 10 в Киеве, можно в сервисе «Chipset».

Функция SetDIBits копирует DIB в память или на устройство. Функция SetDIBitsToDevice выполняет похожие действия, но позволяет выполнять передачу прямо на устройство. Функция GetDIBits выполняет действия, обратные функции SetDIBits, и копирует изображение из памяти или с устройства в DIB. Функция StretchDIBits выполняет действия, похожие на функцию StretchBlt, за исключением того, что источником является DIB. Ядро Windows вызывает функцию StretchDIBits только для передачи данных от DIB; эта функция не вызывается для преобразования растрового изображения в DIB. Такое ограничение, однако, может быть снято в будущих версиях Windows. В дополнение к этим функциям драйвер, который поддерживает DIB, должен поддерживать функцию CreateDIBitmap — но как пустую заглушку, так как эта функция не используется в текущей версии Windows.

Аренда виртуального VPS/VDS сервера в России по ссылке — https://adminvps.ru/vps/vps_russia.php

Формат шрифта

Ядро Windows определяет две версии структуры, содержащей шрифты, которые передаются функции драйвера RealizeObject: структуру для версии 2.х и структуру для версии 3.x. В дополнение к двум версиям структуры существуют еще два формата, описывающие шрифты, хранимые в файле, опять же для версий Windows 2.x и 3.x. Эти четыре формата имеют одно и то же название: FONTINFO. Наличие различных форматов с одним и тем же названием объясняется тем, что шрифты версии 3.x полностью не поддерживаются в версии Windows 3.0.

Основным различием между форматами шрифтов версии 2.x и 3.x является то, что формат версии 3.x позволяет файлу шрифтов быть больше 64К. Ядро Windows будет передавать такой шрифт драйверу только в том случае, если бит 10 поля dpRaster структуры GDI INFO установлен в единицу.

В отличие от формата хранения в памяти структуры FONTINFO формат файла содержит поле версии и поле для указания авторских знаков. Вместо указателей на участки памяти поля содержат смещения внутри файла относительно начала файла.

Функции поддержки GDI-драйверов

В отличие от драйверов устройств DOS, драйверы устройств Windows могут использовать большинство функций Windows, включая функции управления памятью, дискового ввода/вывода и даже функции управления панелями диалога. Так как ядро Windows редко вызывает GDI-драйверы, кроме как в результате вызовов функций Windows, GDI-драйверы имеют меньше ограничений, чем другие драйверы устройств. Функции модуля KERNEL могут вызываться напрямую либо через компоновку с библиотекой LIBW.LIB, или путем указания функции в секции IMPORT в файле описания драйвера.

Функции модуля USER, с другой стороны, не могут вызываться напрямую. Если функция из модуля USER будет случайно импортирована обычным образом, загрузки Windows 3.0 не произойдет. Вместо прямого вызова функций из модуля USER необходимо использовать функции GetModule и GetProcAddr для получения адреса точки входа для необходимой функции.

Нет комментариев

Добавить комментарий

Спасибо! Ваш комментарий появится после проверки.
Adblock
detector