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