Windows Driver Frameworks (Windows Driver Frameworks)
Windows Driver Frameworks | |
---|---|
Тип | фреймворк и инструментальное программное обеспечение |
Разработчик | Microsoft |
Операционная система | Windows |
Языки интерфейса | Английский |
Последняя версия | 1.9 |
Репозиторий | github.com/Microsoft/Win… |
Состояние | Active |
Лицензия | лицензия MIT |
Сайт | learn.microsoft.com/… (англ.) |
Windows Driver Frameworks (WDF) — набор программных инструментов от корпорации Microsoft, облегчающих разработку драйверов устройств для Windows 2000 и более поздних версий Windows.
Основными инструментами, составляющими WDF, являются Kernel Mode Driver Framework (KMDF) и User Mode Driver Framework (UMDF). Эти наборы инструментов обеспечивают поддержку новой объектно-ориентированной программной модели разработки драйверов для Windows. Основной целью фреймворков является «Концептуальная масштабируемость» («Conceptual Scalability»), которая характеризуется только требованием к разработчику драйвера знать несколько простых концепций, чтобы написать простой драйвер, а по мере роста знаний разработчик имеет возможность использовать более сложные, но в то же время более широкие возможности особенностей драйверов. Это заметно отличается от Windows Driver Model (WDM), которая требует от разработчиков драйверов полного знакомства со множеством сложных технических деталей перед написанием даже простейшего драйвера.
Важным шагом в достижении концептуальной масштабируемости является то, что KMDF и UMDF используют составную модель. Такая модель позволяет разработчику расширять и изменять поведение «хорошего драйвера» по умолчанию. Это контрастирует с более старой Windows Driver Model, которая зависит от того, насколько полно разработчик реализовал все аспекты поведения драйвера.
Варианты
[править | править код]Фреймворк поставляется в двух вариантах:
- Kernel-Mode Driver Framework — для написания стандартных драйверов уровня ядра.
- User-Mode Driver Framework — для написания определенных классов драйверов, которые могут исполняться на уровне пользователя.
Это подразумевает использование лежащей в основе программной модели. Тем не менее, фреймворк уровня ядра использует простой API языка Си, в то время как фреймворк уровня пользователя основывается на C++ и облегченной версии COM.
WDF также содержит набор инструментов проверки, которыми могут воспользоваться разработчики драйверов. Эти инструменты проверяют код драйвера на наличие распространенных ошибок и/или симулируют код драйвера для определения причин проблем, которые сложно обнаружить и протестировать.
Инструменты
[править | править код]Static Driver Verifier (SDV) позволяет выполнять достаточно глубокую проверку исполнения кода через отслеживание функций и даже вызовов через WDM. SDV может определить проблемы драйвера, которые скрываются благодаря множеству вызовов функций или множеству операций. SDV используется, когда драйвер близок к завершению.
PREFast for Drivers (PFD) выполняет более поверхностный анализ операций драйвера. PFD может проверить наличие проблем переполнения буфера и других наиболее распространенных программных ошибок, равно как и некоторое число специфических проблем драйверов. Благодаря тому, что его возможности ограничены пределами одной функции, время запуска PFD существенно короче по сравнению с SDV. Поэтому PFD можно использовать в ходе процесса разработки драйвера.
Дополнительные источники
[править | править код]- Домашняя страница Windows Driver Foundation
- Developing Drivers with the Windows Driver Foundation (Orwick и Smith)
- Windows Driver Kit
- Веб-сайт OSR Online содержит множество статей о WDF, KMDF и разработке драйверов для Windows. (на английском)
- Знакомство с Windows Driver Framework, написанное известным разработчиком драйверов для Windows, Уолтером Они. (на английском)
- Building and deploying a basic WDF Kernel Mode Driver, CodeProject
- Developing a WDF USB Kernel Mode Driver for the OSR USB FX2, CodeProject