Иерархия объектов 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.
На следующем рисунке показана иерархия объектов структуры родитель-потомок.
Область существования объектов платформы определяется их расположением в иерархии и способом создания объектов. Область времени существования объектов платформы входит в одну из следующих категорий:
Платформа управляет созданием и уничтожением объектов.
Платформа создает и уничтожает объекты, такие как объект драйвера и объект устройствав ответ на системные события. Когда драйвер пользовательского режима вызывает метод IWDFDriver::CreateDevice для создания объекта устройства, он может по желанию зарегистрироваться для получения уведомлений от платформы перед уничтожением этого объекта.
Платформа создает объект; однако драйвер управляет выпуском объекта.
Объект запроса ввода-вывода , следует этому шаблону при обработке ввода-вывода драйвером. Платформа создает объект запроса, и время существования объекта запроса допустимо, пока драйвер не вызывает метод IWDFIoRequest::Complete.
Драйвер создает объект и связывает объект с другим объектом платформы.
Некоторые объекты платформы создаются методом, предоставляемым экземпляром объекта родительской платформы, с которыми должны быть связаны объекты для целей управления временем существования. Метод IWDFDevice::CreateIoQueue является примером этого шаблона. Если вызов IWDFDevice::CreateIoQueue выполнен успешно, новая очередь ввода-вывода будет связана с экземпляром устройства, который представляет интерфейс IWDFDevice. При уничтожении родительского объекта платформа автоматически очищает дочерние экземпляры. Драйверы уведомляются об этих событиях, если драйверы регистрируют соответствующие функции обратного вызова с помощью платформы.