Поделиться через


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 и библиотеки среды выполнения COM. Вместо этого платформа использует только функции запроса и подсчета ссылок. Каждый интерфейс платформы является производным от IUnknown и поэтому поддерживает методы QueryInterface, AddRef и Release по умолчанию. Методы AddRef и Release управляют временем существования объекта. Метод QueryInterface позволяет другим компонентам определить, какие интерфейсы поддерживает драйвер.