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

Уніфікована робота з усіма пристроями персонального комп'ютера в Windows, а також деякі інші функції операційної системи забезпечуються набором драйверів. Для того щоб написати драйвера, потрібно добре розбиратися в програмуванні, принципи функціонування ядра і різних підсистем Windows.
Як написати драйвера
Вам знадобиться
  • - Windows Driver Development Kit.
Інструкція
1


Завантажте дистрибутив Windows Driver Development Kit (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
Реалізуйте функціонал драйвера. Додайте код у функції, створені на попередньому кроці. Додайте логіку обробки запитів вводу-виводу, і т.д.

Увага, тільки СЬОГОДНІ!