UMDF на основе подмножества COM
Предупреждение
UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. В UMDF 1 новые функции не добавляются, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2.
Архивные примеры UMDF 1 можно найти в Windows 11 версии 22H2 — обновление примеров драйверов за май 2022 г.
Дополнительные сведения см. в разделе начало работы с помощью UMDF.
Объекты и интерфейсы платформы основаны на модели COM по следующим причинам:
COM знаком многим программистам приложений.
C++ является предпочтительным языком для программирования COM-приложений.
COM-интерфейсы позволяют выполнять логические группировки функций, чтобы интерфейс драйвера устройства (DDI) был простым для понимания и навигации.
Использование COM позволяет расширять и развивать DDI без необходимости перекомпилировать существующие библиотеки DLL драйверов.
Множество средств, включая Microsoft Visual Studio и библиотеку активных шаблонов (ATL), поддерживают приложения и объекты на основе COM.
Платформа использует только небольшое подмножество COM; он не зависит от всей com-инфраструктуры и библиотеки среды выполнения. Вместо этого платформа использует только функции запроса и подсчета ссылок. Каждый интерфейс платформы является производным от IUnknown и поэтому по умолчанию поддерживает методы QueryInterface, AddRef и Release . Методы AddRef и Release управляют временем существования объекта. Метод QueryInterface позволяет другим компонентам определять, какие интерфейсы поддерживает драйвер.