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