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


Иерархия объектов платформы

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

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 . При уничтожении родительского объекта платформа автоматически очищает дочерние экземпляры. Драйверы получают уведомление об этих событиях, если драйверы регистрируют соответствующие функции обратного вызова в платформе.