Объект файла Фреймворка

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

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

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

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

Объект файла фреймворка предоставляется драйверам интерфейсом IWDFFile. Это структура представления открытого устройства. Когда приложение открывает устройство через функцию Microsoft Win32 CreateFile , платформа создает файловый объект для представления открытого экземпляра устройства. Поэтому объект файла среды концептуально эквивалентен дескриптору Win32, возвращённого вызовом приложения CreateFile. Платформа может создавать несколько объектов файлов, связанных с одним устройством. Каждый объект файла создается для каждого успешного вызова CreateFile. Все операции ввода-вывода, такие как операции чтения и записи, предназначены для определенного экземпляра файлового объекта.

Заметка Все запросы, передаваемые драйверам UMDF, связаны с объектами файлов. Однако запросы, передаваемые в драйверы WDM и KMDF , иногда не связаны с объектами файлов.

Драйвер UMDF может вызвать метод IWDFIoRequest::GetFileObject , чтобы получить объект файла, связанный с запросом.

Когда драйвер вызывает GetFileObject, платформа увеличивает количество ссылок в интерфейсе. Ваш драйвер отвечает за освобождение ссылки после завершения работы с интерфейсным указателем. Для этого используйте смарт-указатель, который автоматически уменьшает число ссылок при выходе объекта из контекста или вызовите release в интерфейсе после завершения работы с ним. Пример кода, демонстрирующий использование интеллектуального указателя, см. в разделе GetFileObject.