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


Использование целевых объектов ввода-вывода в UMDF

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

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

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

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

Когда драйвер получает запрос ввода-вывода, драйвер может самостоятельно обработать запрос, или может потребоваться помощь других драйверов. Если драйверу нужна помощь, он может пересылать запрос другому драйверу или создать один или несколько новых запросов и отправить их другому водителю.

Драйверы на основе UMDF используют целевые объекты ввода-вывода для отправки запросов ввода-вывода другому драйверу. Каждый целевой объект ввода-вывода представлен целевым объектом ввода-вывода. Каждый целевой объект ввода-вывода является в первую очередь очередью. Когда драйвер отправляет запрос в целевой объект ввода-вывода, платформа сохраняет запрос в очереди, пока он не сможет передать запрос в целевой объект ввода-вывода.

Платформа поддерживает как общие целевые объекты ввода-вывода, так и специализированные целевые объекты ввода-вывода:

  • общие целевые объекты ввода-вывода могут использоваться всеми драйверами UMDF, но они не поддерживают специальные форматы данных для конкретного устройства.

  • Специализированные целевые объекты ввода-вывода позволяют драйверам UMDF отправлять запросы ввода-вывода, требующие специального форматирования данных для конкретных целевых объектов. В настоящее время фреймворк обеспечивает поддержку целевых объектов USB ввода-вывода.

Если платформа предоставляет специализированные целевые объекты ввода-вывода, поддерживающие формат данных устройства, драйвер должен использовать специализированные целевые объекты ввода-вывода. В противном случае драйвер должен использовать общие целевые объекты ввода-вывода.