Литература
1. Агуров П.В. Практика программирования USB. – СПб.:БХВ-Питербург, 2007. – 624с.
2. Банахан М., Раттер Э. Введение в операционную систему UNIX: Пер. с англ. М.: Радио и связь, 1986.
3. Вахалия Ю. UNIX изнутри. – СПб.: Питер, 2003. – 844 с.
4. Комиссарова В. Программирование драйверов для Windows. – СПб.: БХВ-Петербург, 2007.- 256 с.
5. Они У. Использование Microsoft Windows Driver Model. 2-е изд. (+CD); Для профессионалов. – СПб.: Питер, 2007. – 764 с.
6. Орвик П., Смит Г. Windows Driver Foundation: разработка драйверов: Пер. с англ. М.: Издательство «Русская редакция»; СПб.: «БХВ-Петербург», 2008 – 880 с.:ил.
7. Рудаков П.И., Финогенов К.Г. Программируем на языке ассемблера IBM PC. Части 2-4. М.: Энтроп, 1996.
8. Робачевский А.М. Операционная система UNIX. – СПб.:БХВ-Петербург, 2003.–528 с.
9. Солдатов В.П. Программирование драйверов Windows. Изд. 2-е, переработанное и доп. – М.: ООО «Бином-Пресс», 2004 г. – 480 с.
10. Соломон Д., Руссинович М. Внутреннее устройство MS Windows 2000. Питер: 2001
11. Соломон Д., Руссинович М. Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP, Windows 2000. Мастер класс. / Пер. с англ. – 4-е изд. – М.: Издательство «Русская редакция»; СПб.; Питер, 2006. – 992 с.
12. Сорокина С.И., Тихонов А.Ю., Щербаков А.Ю. Программирование драйверов и систем безопасности. – СПб.: БХВ-Петербург, 2003.
13. Теренс Чан Системное программирование на С++ для Unix. BHV, Киев, 1997
14. Фролов А.В., Фролов Г.В. Аппаратное обеспечение персонального компьютера. 15. Библиотека системного программиста 33 т. М.: Диалог-Мифи, 1997.
16. Шрайбер С. Недокументированные возможности Windows 2000. – СПб.: Питер, 2002
17. http://msdn.microsoft.com/en-us/windows/hardware/gg463279
Рекомендации
Для успешной разработки драйвера следует найти образец драйвера.
Например, для драйверов UMDF предлагается образец драйвера Skeleton, который представляет собой минимальный, но полностью функциональный драйвер. Найти его можно по электронному адресу: http://code.msdn.microsoft.com/windowshardware/SKELETON- 3a06c09e/sourcecode?fileId=42909&pathId=1936158728
Дополнительные рекомендации
Установка DDK
1. Комплекты DDK относятся к конкретным версиям операционной системы. Рекомендуется использовать версии DDK для операционной системы, на которой будет использоваться драйвер. Версия операционной системы, на которую ставится DDK, большой роли не играет.
2. Не рекомендуется устанавливать DDK не удалив другую версию.
3. При установке DDK рекомендуется выбрать опцию установки документации и примеров.
4. Для удобства использования среды сборки советуется не изменять путь установки, предлагаемый по умолчанию (папка на системном диске).
5. Для проверки корректности установки DDK можно попробовать скомпилировать один из файлов примеров.
Средства разработки драйвера уровня ядра системы
Для разработки драйвера может использоваться пакет Driver Development Kit (Windows 2003 Server 3790.1830 – позволяет компилировать драйвер для win 2k / nt / xp), который также ориентирован на использование C. DDK содержит библиотеку макроопределений и системных функций, интерфейсов ОС, определений, зависящих от типа и версии ОС, символические определения констант и многое другое. Все это позволяет сделать процесс написания драйвера более легким. Также в DDK входит специальный компилятор, позволяющий уменьшить размер драйвера и облегчающий отладку драйвера (за счет использования возможности вывода отладочных сообщений в специальную консоль в проверочной версии драйвера). Для набора кода был выбран MS Visual Studio 2008 + дополнение VisualAssistX за его возможность подсвечивать синтаксис и технологию автодополнения кода ( Intellisense ).
При отладке драйвера использовались утилиты WinObjEx (утилита, показывающая список объектов Windows), Debugview (утилита, показывающая отладочные сообщения драйвера), ProcessExplorer (альтернативный диспетчер задач).
Компилирование драйвера.
Последовательность действий по сборке драйвера.
1. Запустить необходимую среду сборки (Checked/Free, версия Windows, 32/64).
2. Перейти в папку драйвера.
3. Выполнить команду сборки build.
4. Проверить наличие ошибок, при необходимости внести исправления и повторно скомпилировать.
5. Выйти из среды сборки.
