Як написати драйвера

Як написати драйвера


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



Як написати драйвера


Вам знадобиться



  • - Windows Driver Development Kit.


Інструкція


1


Завантажте дистрибутив Windows Driver DevelopmentKit (DDK) з сайту microsoft.com (доступний для передплатників MSDN) і встановіть його на комп'ютер. Даний пакет містить всі необхідні засоби для розробки і збірки драйверів (компілятор, линкер, заголовки, бібліотеки), а також вичерпну документацію.


2


Детально вивчіть всю доступну документацію понаписання драйверів під Windows. Використовуйте довідкову інформацію з пакету DDK і відповідного розділу MSDN (msdn.microsoft.com). Ви повинні повністю зрозуміти всі аспекти моделі драйверів Windows (WDM), засвоїти основні архітектурні концепції. Необхідно чітко розуміти різницю між драйверами, що працюють в режимі користувача і в режимі ядра, драйверами пристроїв і файлових систем. Потрібно знати особливості різних класів драйверів, їх типів (драйвери шин, фільтрів, функціональні драйвери) і підтипів (драйвери дисплеїв, модемів, мережевих пристроїв, паралельних і послідовних портів, пристроїв зберігання інформації). Особливу увагу приділіть принципам пакетно-керованого введення-виведення (Packet-Driven I / O) з повторно-використовуваними пакетами запитів (Reusable IRPs), управлінню пам'яттю, обробці виключень і правильному застосуванню об'єктів синхронізації.


3


Чітко визначте функціонал розроблюваного драйвера. На основі цього визначте, до якого типу і класу він належить.


4


Виберіть мову програмування. Традиційно драйвери, що працюють в режимі ядра, реалізуються на C. Драйвери користувальницького режиму зазвичай розробляють на C ++. З цих правил є кілька винятків. Так, на C ++ пишуться клієнтські мінідрайвери аудіо та відео потоків, WDM аудіо драйвери мініпорт режиму ядра, WIA драйвери, іноді драйвери дисплея.


5


Створіть проект, який реалізує заготовку драйвера. Досліджуйте каталог DDK з прикладами. Підберіть демонстраційний проект драйвера потрібного типу. Якщо підходящого прикладу не знайшлося, самостійно створіть файли, що містять потрібний вихідний код, а також файли сценаріїв збірки. Наприклад, при розробці драйвера режиму ядра потрібно реалізувати функцію DriverEntry, що містить код ініціалізації, а також деякі стандартні процедури (такі як AddDevice, StartIo, і т.д.).


6


реалізуйте функціонал драйвера. Додайте код в функції, створені на попередньому кроці. Додайте логіку обробки запитів вводу-виводу, і т.д.