Библиотека knigago >> Компьютеры: Разработка ПО >> Системное программирование >> Как писать драйвера


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1585, книга: Ёлочка и берёзка
автор: Богдан Владимирович Ковальчук

"Ёлочка и березка" - очаровательная детская проза, которая увлекает юных читателей в мир лесных чудес. Богдан Ковальчук мастерски создает образ двух подруг - гордой, вечнозеленой елочки и нежной, белокорой березки. Их диалоги наполнены поучительными историями и мудрыми рассуждениями о жизни и дружбе. Повествование начинается в зимнюю пору, когда елочка, сверкающая праздничными огнями, становится объектом всеобщего внимания. Березка, пораженная красотой подруги, начинает завидовать...

Гром - Как писать драйвера

Как писать драйвера
Книга - Как писать драйвера.   Гром  - прочитать полностью в библиотеке КнигаГо
Название:
Как писать драйвера
Гром

Жанр:

Учебники и самоучители по компьютеру, Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Системное программирование, C, C++, C#, Windows API

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Как писать драйвера"

Драйвера под Windows являются для большей массы программистов, "тайной за семью печатями". И вовсе не потому, что это что-то архисложное, сколько по причине абсолютной недокументированности идеологии.
Начав заниматься этой темой я понял особенную необходимость не в переводе стандартного Майкрософтовского описания, а именно неких заметок, по созданию и сбору драйверов для различных устройств.
Уточню, что в этих заметках, будут только те данные, которые я проверил лично, с которыми столкнулся в процессе разработки промышленных драйверов, бегающих сегодня в коммерческих пакетах.
Естественно, все коммерческие секреты я рассказывать не буду.


Читаем онлайн "Как писать драйвера". Главная страница.

Как писать драйвера

Как писать драйвера (часть 1)

Предисловие.

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

Начав заниматься этой темой я понял особенную необходимость не в переводе стандартного Майкрософтовского описания, а именно неких заметок, по созданию и сбору драйверов для различных устройств.

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

Естественно, все коммерческие секреты я рассказывать не буду.

Некоторые требования к чтению.
Эти заметки не ориентированны на людей – проектирующих драйвера, они уже должны знать все, что здесь будет.

Не стоит читать их человеку, слабо знакомому с языками С и С++, а также плохо понимающему объектную структуру и принципы Win32.

Часть первая: "Что нужно для компиляции простейшего драйвера?"

Для разных типов Windows вам понадобиться разный набор программ.

В любом случае надо скачать Win DDK (Driver Development Kit), для той платформы, под которую пишется драйвер. Его можно брать с разных источников, лично я предпочитаю сайт Майкрософта.

Для линейки 9х вам понадобится и SDK (Software Development Kit), который возьмите там же.

Так как под продукцию Билла Гейтса стоит поставить и VC++ , я посоветую ставить в таком порядке.

1. Visual C++ 6

2. SDK

3. DDK

Для более поздних платформ достаточно только DDK.

Установив все эти продукты вы получите возможность собирать и инсталлировать драйвера.

Первая тестовая компиляция.

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

Мы пойдем более простым и надежным путем.

После установки DDK, у вас появились в директории samples или sources, в зависимости от версии, коды примеров драйверов. Это ваша библия, которую стоит изучить.

Проверка, собственно, правильности прописывания путей (environments), и собственно самой DDK и SDK – состоит в пробной компиляции примера.

Компиляция осуществляется посредством стандартных средств.

Программами build, make и link.

Makefile уже написан за вас, и вам надо сделать следующее. Зайдя в Start menu в разделе Programs|DDK|Build environment выберите вариант free и запустите.

Запустится стандартное окно терминала, с установленными переменными среды сборки DDK.

Перейдите в директорию с sources драйвера, который вы выбрали. Компилировать и собирать в корневой директории DDK не стоит.

Это приведет к сборке ВСЕХ драйверов примеров и компиляции всех библиотек, а это очень долго.

В корневой директории примера (драйвер принтера в нашем случае) запустите build с параметрами –cZ.

Если вы получили ошибки перепроверьте ваши установки. В нормальном случае вы получите возможность увидеть надпись об удачной сборки sys или vxd файла – в определенной директории. Чаще всего это Free/i386/

Но бывает и другая. Это говорит о том что ваш драйвер собран правильно и установка прошла успешно

Как писать драйвера (часть 2)

Прежде, чем хвататься за описание самого драйвера, давайте определимся с типами существующих драйверов.

По существующему в DDK разделению сам Microsoft подразделяет драйвера на следующие типы:

– Kernel-Mode Drivers;

– Kernel Streaming Drivers;

– Graphics Drivers;

– Network Drivers;

– Virtual Device Drivers.

С графическими и сетевыми драйверами более менее понятно по названию.

Виртуальные VDD относятся к устройствам, нуждающимся в работе под MS-DOS.

А вот два первых типа мы разберем немного подробнее.

Книгаго: Как писать драйвера. Иллюстрация № 1 На рисунке видна структура всех драйверов типа Kernel-Mode Drivers. В иерархии этой системы различают драйвера для работы на верхнем уровне(high-level), промежуточные (intermediate) и низкого уровня (low-level).

К первому относятся драйвера файловый систем (FAT, NTFS), ко второму – драйвера фильтры, драйвера виртуальных --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.