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


Операционный поток с двойным стеком устройств

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

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 i/o для драйвера фильтра umdf и драйвера функции umdf.

Примечание Все операции ввода-вывода, инициированные приложениями, проходят через режим ядра, как показано на рисунках в разделе Архитектура UMDF, несмотря на то, что предыдущий рисунок не показывает эту ситуацию.

Фильтры и драйверы функций UMDF также могут вызывать метод IWDFIoRequest::GetCreateParameters , если им требуются сведения о файле, связанном с запросом на чтение. Драйверы фильтров и функций UMDF также могут вызывать метод IWDFIoRequest::GetReadParameters , если требуется дополнительная информация о запросе на чтение.

Функциональный драйвер UMDF вызывает метод IWDFIoRequest::Complete или IWDFIoRequest::CompleteWithInformation, чтобы сообщить драйверу фильтра, что завершена операция чтения. Драйвер фильтра UMDF также может вызывать методы интерфейса IWDFIoRequestCompletionParams , если требуется дополнительная информация для завершения запроса на чтение. Драйвер фильтра UMDF вызывает Complete или CompleteWithInformation, чтобы сообщить о завершении операции чтения, затем приложение может получить доступ к данным чтения.