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


Иерархия объектов Framework

Предупреждение

UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2.

Архивные примеры UMDF 1 можно найти в Windows 11, версия 22H2 — обновление драйверов за май 2022 года.

Дополнительные сведения см. в разделе Начало работы сUMDF.

На следующем рисунке показана иерархия объектов структуры родитель-потомок.

иерархия объектов «родитель-ребенок» UMDF.

Область существования объектов платформы определяется их расположением в иерархии и способом создания объектов. Область времени существования объектов платформы входит в одну из следующих категорий:

  • Платформа управляет созданием и уничтожением объектов.

    Платформа создает и уничтожает объекты, такие как объект драйвера и объект устройствав ответ на системные события. Когда драйвер пользовательского режима вызывает метод IWDFDriver::CreateDevice для создания объекта устройства, он может по желанию зарегистрироваться для получения уведомлений от платформы перед уничтожением этого объекта.

  • Платформа создает объект; однако драйвер управляет выпуском объекта.

    Объект запроса ввода-вывода , следует этому шаблону при обработке ввода-вывода драйвером. Платформа создает объект запроса, и время существования объекта запроса допустимо, пока драйвер не вызывает метод IWDFIoRequest::Complete.

  • Драйвер создает объект и связывает объект с другим объектом платформы.

    Некоторые объекты платформы создаются методом, предоставляемым экземпляром объекта родительской платформы, с которыми должны быть связаны объекты для целей управления временем существования. Метод IWDFDevice::CreateIoQueue является примером этого шаблона. Если вызов IWDFDevice::CreateIoQueue выполнен успешно, новая очередь ввода-вывода будет связана с экземпляром устройства, который представляет интерфейс IWDFDevice. При уничтожении родительского объекта платформа автоматически очищает дочерние экземпляры. Драйверы уведомляются об этих событиях, если драйверы регистрируют соответствующие функции обратного вызова с помощью платформы.