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 можно использовать в ходе процесса разработки драйвера.

Дополнительные источники

[править | править код]