Единната работа с всички устройства на персонален компютър в Windows, както и някои други функции на операционната система се осигуряват от набор от драйвери. За да пишете драйвери, трябва добре да разбирате програмирането, принципите на ядрото и различни подсистеми на Windows.
Необходимо
Комплект за разработка на драйвери за Windows
Инструкции
Етап 1
Изтеглете дистрибуцията на Windows Driver Development Kit (DDK) от microsoft.com (достъпна за абонати на MSDN) и я инсталирайте на вашия компютър. Този пакет съдържа всички необходими инструменти за разработване и изграждане на драйвери (компилатор, линкер, заглавни файлове, библиотеки), както и изчерпателна документация.
Стъпка 2
Проучете подробно цялата налична документация за писане на драйвери за Windows. Използвайте справочната информация от DDK и свързаната с нея тема MSDN (msdn.microsoft.com). Трябва напълно да разберете всички аспекти на Windows Driver Model (WDM) и да разберете основните архитектурни концепции. Трябва ясно да разберете разликите между драйвери в потребителски режим и режим на ядро, драйвери на устройства и драйвери на файловата система. Трябва да знаете характеристиките на различните класове драйвери, техните типове (драйвери на шината, филтри, функционални драйвери) и подтипове (драйвери за дисплей, модеми, мрежови устройства, паралелни и серийни портове, устройства за съхранение). Обърнете специално внимание на принципите на управляваните от пакети I / O с многократно използвани IRP, управление на паметта, обработка на изключения и правилното прилагане на обекти за синхронизация.
Стъпка 3
Ясно дефинирайте функционалността на разработвания драйвер. Въз основа на това определете към какъв тип и клас принадлежи.
Стъпка 4
Изберете език за програмиране. Традиционно драйверите в режим на ядро се прилагат в C. Драйверите за потребителски режим обикновено се разработват в C ++. Има няколко изключения от тези правила. Например клиентски минидрайвъри за аудио и видео потоци, WDM аудио драйвери за минипортове в режим на ядрото, драйвери WIA и понякога драйвери за дисплей са написани на C ++.
Стъпка 5
Създайте проект, който изпълнява заглушителя на драйвера. Разгледайте директорията DDK с примери. Намерете правилния демо проект на драйвера. Ако не можете да намерите подходящ пример, създайте сами файловете, които съдържат необходимия изходен код, и изградете скрипт файлове. Например, когато разработвате драйвер в режим на ядро, трябва да внедрите функцията DriverEntry, която съдържа инициализационния код, както и някои стандартни рутинни процедури (като AddDevice, StartIo и др.)
Стъпка 6
Внедрете функционалността на драйвера. Добавете код към функциите, създадени в предишната стъпка. Добавете логика за обработка на I / O заявки и т.н.