Использование целевых объектов ввода-вывода в 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.

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