User-Mode Driver Framework ( UMDF ) представляет собой платформу разработки драйвера устройства впервые с Microsoft «s Windows Vista операционной системы , а также доступен для Windows XP . Это облегчает создание драйверов для определенных классов устройств. [1]
Разработчики) | Microsoft |
---|---|
Первый выпуск | 12 октября 2004 г . |
Стабильный выпуск | 2.27 / 24 марта 2019 г . |
Репозиторий | github |
Написано в | C , C ++ |
Операционная система | Майкрософт Виндоус |
Тип | Платформа разработки драйверов устройств |
Лицензия | Лицензия MIT |
Веб-сайт | документы |
Обзор
Стандартные драйверы устройств может быть сложно написать, потому что они должны обрабатывать очень широкий диапазон состояний системы и устройств, особенно в многопоточной программной среде. Плохо написанные драйверы устройств могут вызвать серьезные повреждения системы (например, BSoD и повреждение данных), поскольку все стандартные драйверы имеют высокие привилегии при прямом доступе к ядру. Платформа драйверов пользовательского режима изолирует ядро от проблем прямого доступа к драйверам, вместо этого предоставляя новый класс драйверов с выделенным интерфейсом прикладного программирования на пользовательском уровне прерываний и управления памятью. В случае возникновения ошибки новая структура позволяет немедленно перезапустить драйвер, не влияя на систему. Это особенно полезно для устройств, которые периодически подключаются к системе или поддерживают горячую замену через технологию шины, такую как USB или FireWire .
Согласно Microsoft, драйверы UMDF проще писать и отлаживать, чем драйверы режима ядра. [2] Однако UMDF не будет использоваться для устройств с высокой производительностью или с отслеживанием состояния.
Первая версия UMDF была отправлена как часть Windows Media Player версии 10 12 октября 2004 года. Под кодовым названием "Crescent" он был разработан для поддержки драйвера Media Transfer Protocol , и для него не было предоставлено никаких общедоступных интерфейсов или документации. Позже Microsoft решила превратить UMDF в платформу для разработки драйверов устройств. [3]
История версий
- Платформа драйверов пользовательского режима 1.5–1.9, поддерживает Windows XP и новее.
- Платформа драйверов пользовательского режима 1.11, поддерживает Windows Vista и более поздние версии , а также Windows Server 2008 и более поздние версии . [4]
- User-Mode Driver Framework 2.0, который поддерживает Windows 8.1 и новее. [5]
Архитектура
Драйвер UMDF - это библиотека DLL, основанная на модели компонентных объектов Microsoft (COM). Однако UMDF не использует COM для загрузки, выгрузки или управления параллелизмом ; он использует COM только как шаблон программирования , например, используя интерфейс COM IUnknown . При запуске UMDF вызывает DllGetClassObject , чтобы получить указатель на IClassFactory интерфейс в драйвере , а затем использует CreateInstance метод IClassFactory интерфейса для создания экземпляра объекта драйвера обратного вызова.
Объект драйвера - это экземпляр интерфейса IWDFDriver, предоставляемого платформой . Драйвер предоставляет набор обратных вызовов через COM-интерфейс IDriverEntry , который является основной точкой входа для настройки драйвера.
Смотрите также
Рекомендации
- ^ Программирование драйверов для UMDF
- ^ «Преимущества написания драйверов UMDF» .
- ^ Чарльз Торре, Питер Виланд (18 сентября 2006 г.). "Питер Виланд: Структура драйвера пользовательского режима" . Канал 9 . Microsoft . Проверено 18 сентября 2006 .
- ^ Служба поддержки Microsoft. «Обновление версии 1.11 Driver Framework для пользовательского режима для Windows Vista, Windows Server 2008, Windows 7 и Windows Server 2008 R2» . Microsoft . Проверено 1 декабря 2012 .
- ^ «Часто задаваемые вопросы о среде драйвера пользовательского режима (драйверы Windows)» . Microsoft . Проверено 4 июня 2014 .
Внешние ссылки
- Официальный веб-сайт
- Блог Питера Виланда - руководитель группы разработчиков UMDF в Microsoft