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

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

175 Views Download Presentation
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 функций • Вспомогательный код генерируется автоматически • Сохранена совместимость со старыми тестами • Найдены критические ошибки в коммерческом продукте