Написать пост

Microsoft опубликовала исходный код DMF для разработчиков драйверов

Аватар Татьяна Морозова

Driver Module Framework раньше использовался для создания драйверов устройств Surface и был доступен только разработчикам компании Microsoft.

Команда Microsoft Devices анонсировала выпуск фреймворка с исходным кодом для разработчиков драйверов — Driver Module Framework (DMF). Сотрудники Microsoft утверждают, что фреймворк упрощает процесс создания структурированных WDF-драйверов для Windows. Новый инструмент позволит повторно использовать код и делиться им с другими программистами.

DMF был создан специально для разработчиков драйверов устройств Surface и предназначался для внутреннего использования. Платформа позволяет использовать код для повышения эффективности, удобства обслуживания и количества команд, делающих новые продукты. Теперь исходный код фреймворка доступен всем желающим на GitHub.

Сравнение WDF и DMF

Традиционная модель Windows-драйвера:

  • WDF не требует от разработчика полного знакомства с техническими нюансами;
  • есть набор средств проверки готовой программы на наличие распространенных ошибок;
  • позволяет выявить причины неправильной работы драйвера;
  • трудно понять поток связи между отдельными модулями драйвера и правильно их синхронизировать с контекстом устройства, обходя блокировки;
  • для повторного использования кода необходимо разобраться во взаимодействии между блоками перед извлечением исходного кода.
Microsoft опубликовала исходный код DMF для разработчиков драйверов 1

Новая модель Windows-драйвера:

  • создает прослойку между драйвером и его реализацией;
  • связывает между собой отдельные модули и клиентский код;
  • обратные вызовы WDF существуют независимо друг от друга в каждом модуле, а DMF занимается перехватом, перенаправляя вызовы и возвращая результаты обработки данных модулям;
  • каждый блок использует свою собственную область контекста для поддержания состояния — теперь разработчикам необязательно следить за техническими особенностями;
  • клиентский код взаимодействует только с тремя модулями: ACPI, Button и Stream (стрелки наглядно показывают это).
Microsoft опубликовала исходный код DMF для разработчиков драйверов 2

Дизайн DMF-модулей

Новый фреймворк подобен схемам взаимодействия и дизайну традиционной платформы, он не заменяет и не ограничивает драйвер напрямую от использования интерфейса операционной системы. DMF облегчает выполнение задач, которые совершает драйвер устройства в автономных блоках, позже записанных как модули.

Полный список различий между традиционным и новым фреймворками и полную структуру и ресурсы DMF можно прочесть в блоге Windows или на GitHub.

В конце апреля 2018 года Microsoft выпустила Windows Template Studio — сервис, предназначенный для разработки UWP-приложений. Теперь WTS обнаруживает темные, светлые и высококонтрастные режимы Visual Studio.

Следите за новыми постами
Следите за новыми постами по любимым темам
1К открытий1К показов