1 / 8

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

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

kacy
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related