Иерархия объектов платформы
Предупреждение
UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. В UMDF 1 новые функции не добавляются, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2.
Архивные примеры UMDF 1 можно найти в Windows 11 версии 22H2 — обновление примеров драйверов за май 2022 г.
Дополнительные сведения см. в разделе начало работы с помощью UMDF.
На следующем рисунке показана иерархия объектов родительской и дочерней платформы.
Время существования область объектов платформы определяется их расположением в иерархии и способом их создания. Время существования область объектов платформы относится к одной из следующих категорий:
Платформа управляет созданием и уничтожением объектов .
Платформа создает и уничтожает объекты, такие как объект драйвера и объект устройства, в ответ на системные события. Когда драйвер пользовательского режима вызывает метод IWDFDriver::CreateDevice для создания объекта устройства, драйвер может при необходимости зарегистрироваться для уведомления платформы перед уничтожением объекта устройства.
Платформа создает объект ; однако драйвер управляет освобождением объекта.
Объект запроса ввода-вывода соответствует этому шаблону при представлении ввода-вывода драйверу. Платформа создает объект запроса, и время существования объекта запроса является допустимым до тех пор, пока драйвер не вызовет метод IWDFIoRequest::Complete .
Драйвер создает объект и связывает его с другим объектом платформы.
Некоторые объекты платформы создаются методом, предоставляемым экземпляром родительского объекта платформы, с которыми эти объекты должны быть связаны в целях управления жизненным циклом. Примером этого шаблона является метод IWDFDevice::CreateIoQueue . Если вызов IWDFDevice::CreateIoQueue завершается успешно, созданная очередь ввода-вывода связывается с экземпляром устройства, который представляет интерфейс IWDFDevice . При уничтожении родительского объекта платформа автоматически очищает дочерние экземпляры. Драйверы получают уведомление об этих событиях, если драйверы регистрируют соответствующие функции обратного вызова в платформе.