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


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 позволяет другим компонентам определять, какие интерфейсы поддерживает драйвер.