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


Объект файла платформы

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

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.