Среда разработки
Между перечисленным набором компонентов имеется взаимосвязь.
Первым ставится компилятор. Как уже говорилось, хотя существует возможность использования компиляторов других фирм, SDK и DDK предполагают наличие именно Visual С, причем в зависимости от времени выхода SDK и DDK подразумеваются различные версии компилятора (при линковке будут указаны библиотеки различных версий – этим грешит SDK, либо будут некорректно запускаться командные файлы инициализации переменных окружения – этим грешит DDK). Кроме того, ранние версии DDK требовали обязательного наличия установленного SDK. Из возможных проблем стоит указать и то, что при использовании ОС Windows NT Workstation могут не устанавливаться системные переменные окружения.
Расположение командных файлов для установки переменных окружения:
- VC98\bin\vcvars32.bat;
- Mstools\setenv.bat;
- Ddk\bin\setenv.bat.
При наличии версии DDK, требующей наличия SDK, из файла Ddk\bin\setenv.bat должны быть исключены строки проверки наличия SDK и запуска файла setenv.bat, а также прописан вызов vcvars32.bat.
Средства отладки и вспомогательные средства.
Выбор средства отладки – важный момент, который может влиять на набор необходимых аппаратных средств.
Вместе с продуктами Microsoft поставляются четыре отладчика:
- KD – консольная программа для отладки драйверов режима ядра, находится в директории bin пакета DDK для NT4 и Win2000. (i386kd.exe, ia64kd.exe, alphakd.exe, mipskd.exe).
- NTSD – консольная программа для отладки программ и драйверов пользовательского режима, находится в директории system32 ОС Windows 2000.
- CDB – вариант NTSD, содержится в директории bin пакета DDK для Windows 2000.
- WinDbg – графический отладчик для отладки кода как пользовательского режима, так и режима ядра, содержится в директории bin пакета DDK для Win2000 и Platform SDK.
Из всех перечисленных вариантов упоминания достоин лишь отладчик WinDbg. Он предоставляет удобный пользовательский интерфейс, однако очень неустойчив в работе, плохо документирован и не имеет поддержки от Microsoft. При использовании этого продукта для отладки драйверов необходимы два компьютера – Development Platform и Test Platform. Отладчик доступен для всех поддерживаемых платформ, при этом возможна кроссплатформенная отладка. Поддерживается работа на мультипроцессорных системах.
Лучшим отладчиком для отладки ОС и драйверов многие разработчики с полным основанием считают SoftlCE фирмы NuMega, стабильный при работе, хорошо документированный, с поддержкой от фирмы. Отладка осуществляется на том же компьютере, на котором проводилась разработка, однако возможна и удаленная отладка посредством dos-программы serial.exe. Недостатком можно считать пользовательский интерфейс, однако – это дело привычки. Более серьезными недостатками является ограничение поддержки процессоров только платформой Intel, а также отсутствие поддержки мультипроцессорных систем (однако система все еще активно развивается).
Ниже перечислены средства, которые могут выступать к качестве "наглядного пособия" при написании драйверов (часть этих средств снабжена исходными текстами):
- Monitor – просмотр трассировочной информации, выводимой драйверами и прикладными программами;
- Winobj – просмотр пространства имен диспетчера объектов;
- Handleex – информация о запущенных процессах, всех открытых ими описателях и подгруженных модулях dll;
- Filemon – просмотр активности файловых систем;
- Regmon – отслеживание обращений к реестру, в том числе на этапе загрузки системы;
- Portmon – отслеживание обращений к последовательным и параллельным портам;
- Tdimon – отслеживание запросов TDI;
- Tokenmon – отслеживание работы системы безопасности.