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

Уніфікована робота з усіма пристроями персонального комп'ютера в 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
Реалізуйте функціонал драйвера . Додайте код у функції, створені на попередньому кроці. Додайте логіку обробки запитів вводу-виводу, і т.д.