Использование автогенерации кода для тестирования драйверов ОС Windows - PowerPoint PPT Presentation

windows n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Использование автогенерации кода для тестирования драйверов ОС Windows PowerPoint Presentation
Download Presentation
Использование автогенерации кода для тестирования драйверов ОС Windows

play fullscreen
1 / 8
Использование автогенерации кода для тестирования драйверов ОС Windows
175 Views
Download Presentation
kacy
Download Presentation

Использование автогенерации кода для тестирования драйверов ОС Windows

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Санкт-ПетербургскийГосударственныйУниверситетСанкт-ПетербургскийГосударственныйУниверситет Математико-МеханическийФакультет КафедраСистемногоПрограммирования Использование автогенерации кода для тестирования драйверов ОС Windows Дипломная работа студента 545группы Комольцева Дмитрия Владимировича Научный руководитель: Сабашный В.Е. Рецензент: Лабутин И.А. 2008 год

  2. Автоматическое тестирование • Быстрее, чем ручное • Некоторые области неудобно тестировать вручную • Удобно проводить регрессионное тестирование • Перехват функций • Тестирование путей обработки ошибок • Эмуляция ситуации нехватки системных ресурсов • Формирование «специфических» запросов системе

  3. Существующая система Тестовое окружение User mode Установка параметров перехвата. Тестируемый драйвер Wrapper Операционная система Kernel mode … ExAllocatePool(…); … w_ExAllocatePool(…){ изменение параметров; задержка; ExAllocatepool(…); Возврат кодаошибки; } ExAllocatePool(…)

  4. WDF как среда разработки драйверов OS Windows • Самая новая технология разработки драйверов от Microsoft • Поддерживаются версии Windows начиная с Windows 2000 • Kernel Mode Driver Framework и User Mode Driver Framework • Простота разработки драйверов • Берет на себя работу с PnP, WMI, DMA,... • Поддержка версий

  5. Проблема • WDF поддерживает одновременную работу с разными версиями окружения • Требуемая версия определяется в процессе загрузки драйвера • Старый метод перехвата не работает • Требуется добавить поддержку перехвата WDF функций • Нельзя нарушать работу старой системы перехвата

  6. Решение Wrapper Тестируемый драйвер ts_WdfDriverCreate(DG,…){ return w_WdfDriverCreate(…); } Работа… WdfDriverCreate(DG,…); Снова работа; … Kernel mode w_WdfDriverCreate (…){ Изменение параметров; ws_WdfDriverCreate (…); Возврат кода ошибки; } Операционная система WdfDriverCreate(DG,…) ws_WdfDriverCreate(…){ return WdfDriverCreate(DG, …); }

  7. Схема генерации Заголовочные файлы Windows DDK Шаблоны функций-перехватчиков Исходные коды драйвера-перехватчика Заголовки функций Выбранные заголовки Сгенерированные функции-перехватчики для всех функций Готовый драйвер Выбранные заголовки с помеченными WDF функциями Сгенерированные функции-обертки для WDF функций

  8. Результаты • В тестовое окружение добавлена поддержка перехвата WDF функций • Вспомогательный код генерируется автоматически • Сохранена совместимость со старыми тестами • Найдены критические ошибки в коммерческом продукте