Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы повысить производительность, драйверы на основе платформы, которые создают и отправляют множество практически идентичных асинхронных запросов в целевой объект ввода-вывода, могут повторно использовать объекты запросов вместо создания нового объекта запроса для каждого запроса. Драйвер может повторно использовать объект запроса после завершения запроса.
Если драйвер создал объект запроса, вызвав WdfRequestCreate или WdfRequestCreateFromIrp, он может повторно использовать запрос, вызвав WdfRequestReuse. Драйвер также может повторно использовать объекты запроса, полученные из платформы в очередях ввода-вывода, но не может изменить IRP, который содержит полученный объект запроса.
Если вы будете должным образом избегать ситуаций, которые вызывают неудачные возвращаемые значения, описанные в WdfRequestReuse, ваш драйвер может вызвать WdfRequestReuse из функции обратного вызова завершения . (Функция обратного вызова CompletionRoutine имеет возвращаемое значение VOID и поэтому не может сообщать об ошибках.)
Если драйвер предоставляет функцию обратного вызова CompletionRoutine для объекта запроса, который повторно используется, драйвер должен вызвать WdfRequestSetCompletionRoutine после того, как вызовет WdfRequestReuse.