Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предупреждение
UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2.
Архивные примеры UMDF 1 можно найти в Windows 11, версии 22H2 — обновление примеров драйверов от мая 2022 года.
Дополнительные сведения см. в статье "Начало работы с UMDF".
Платформа представляет каждый USB-интерфейс в виде объекта USB-интерфейса платформы. Когда драйвер UMDF создает объект USB-устройства платформы, платформа создает объект USB-интерфейса платформы для каждого USB-интерфейса, который поддерживает устройство.
Большинство USB-устройств имеют только один интерфейс, и интерфейс имеет только один альтернативный параметр. Драйверы для таких устройств обычно не должны использовать методы объекта, определяемые объектом USB-интерфейса платформы.
Если драйвер UMDF поддерживает USB-устройства, предоставляющие несколько интерфейсов или альтернативные параметры, методы объекта интерфейса позволяют драйверу:
Получение сведений о интерфейсе UMDF-USB
После того как драйвер UMDF вызовет метод IWDFUsbTargetFactory::CreateUsbTargetDevice для создания объекта целевого устройства UMDF-USB, он может вызвать метод IWDFUsbTargetDevice::GetNumInterfaces для получения количества USB-интерфейсов, поддерживаемых устройством. Затем драйвер может вызывать метод IWDFUsbTargetDevice::RetrieveUsbInterface для получения указателей на интерфейсы IWDFUsbInterface , предоставляющие USB-интерфейсы, поддерживаемые устройством. Затем драйвер может вызвать следующие методы, которые каждый объект USB-интерфейса определяет для получения сведений об USB-интерфейсе:
IWDFUsbInterface::GetInterfaceNumber
Получает номер USB-интерфейса, связанный с объектом USB-интерфейса.
IWDFUsbInterface::GetInterfaceDescriptor
Получает дескриптор USB-интерфейса, связанный с одним из альтернативных параметров USB-интерфейса.
IWDFUsbInterface::GetNumEndPoints
Получает количество конечных точек (также известных как каналы), связанных с одним из альтернативных параметров USB-интерфейса.
IWDFUsbInterface::GetConfiguredSettingIndex
Получает значение индекса, определяющее альтернативный параметр, выбранный в данный момент для USB-интерфейса.
IWDFUsbInterface::RetrieveUsbPipeObject
Получает указатель на интерфейс IWDFUsbTargetPipe, предоставляющий объект канала фреймворка, связанный с указанным интерфейсом USB-устройства и индексом канала.
IWDFUsbInterface::GetWinUsbHandle
Получает дескриптор интерфейса WinUsb, который связан с USB-интерфейсом.
Выбор альтернативного параметра для интерфейса UMDF-USB
Драйвер UMDF может вызвать метод IWDFUsbInterface::SelectSetting , чтобы выбрать альтернативный параметр для одного из USB-интерфейсов, поддерживаемых устройством.
Альтернативные параметры устройства должны быть нумерованы последовательно, начиная с нуля.
Важный Выбор параметра недействителен для всех сведений об интерфейсе и конечных точках. Поэтому драйвер должен снова получить эти сведения. Драйвер также должен удалить все объекты USB-канала, которые он ранее извлёк, и воссоздать их.