• Предисловие.
  • Часть первая: "Что нужно для компиляции простейшего драйвера?"
  • Первая тестовая компиляция.
  • Как писать драйвера (часть 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/

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







     

    Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх