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


Повторное использование объектов запросов в рамках 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.

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

Если драйвер создал объект запроса путем вызова IWDFDevice::CreateRequest, он может повторно использовать запрос, вызвав IWDFIoRequest2::Reuse. Драйвер также может повторно использовать объекты запроса, полученные из платформы в очередях ввода-вывода.

Если драйвер предоставляет функцию обратного вызова IRequestCallbackRequestCompletion::OnCompletion для объекта запроса, который он повторно использует, драйвер должен вызывать IWDFIoRequest::SetCompletionCallback после вызова Reuse.