перечисление WDF_DEVICE_IO_BUFFER_RETRIEVAL (wudfddi_types.h)
[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. В UMDF 1 новые функции не добавляются, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с UMDF.]
Перечисление WDF_DEVICE_IO_BUFFER_RETRIEVAL используется для указания того, когда UMDF делает буферы запроса ввода-вывода доступными для драйвера.
Синтаксис
typedef enum _WDF_DEVICE_IO_BUFFER_RETRIEVAL {
WdfDeviceIoBufferRetrievalInvalid,
WdfDeviceIoBufferRetrievalCopyImmediately,
WdfDeviceIoBufferRetrievalDeferred,
WdfDeviceIoBufferRetrievalMaximum
} WDF_DEVICE_IO_BUFFER_RETRIEVAL, *PWDF_DEVICE_IO_BUFFER_RETRIEVAL;
Константы
WdfDeviceIoBufferRetrievalInvalid Зарезервировано для системного использования. |
WdfDeviceIoBufferRetrievalCopyImmediately UMDF делает буферы запроса ввода-вывода доступными для драйвера (копируя их в хост-процесс драйвера UMDF), как только UMDF получит запрос ввода-вывода. Дополнительные сведения см. в разделе "Примечания". |
WdfDeviceIoBufferRetrievalDeferred UMDF делает буферы запроса ввода-вывода доступными для драйвера (копируя их в процесс узла драйвера UMDF) только тогда, когда драйвер пытается получить доступ к буферам. Дополнительные сведения см. в разделе "Примечания". |
WdfDeviceIoBufferRetrievalMaximum Зарезервировано для системного использования. |
Комментарии
Перечисление WDF_DEVICE_IO_BUFFER_RETRIEVAL используется в качестве входных данных для IWDFDeviceInitialize2::SetIoTypePreference.
В версиях UMDF, предшествующих версии 1.9, UMDF всегда делает буферы запроса ввода-вывода доступными для драйвера (путем копирования буферов в процесс узла драйвера UMDF), как только UMDF получит запрос ввода-вывода. IWDFIoRequest::GetInputMemory и IWDFIoRequest::GetOutputMemory являются единственными объектными методами, которые драйверы могут вызывать для доступа к буферам.
UMDF версии 1.9 и более поздних версий может поддерживать немедленное или отложенное получение буферов запросов. Все новые драйверы должны включать отложенное извлечение, так как они обычно обеспечивают лучшую производительность драйвера, чем немедленное извлечение. Если драйвер не включает отложенное извлечение, UMDF использует немедленное извлечение.
Чтобы отложить получение буферов, драйвер должен вызвать IWDFDeviceInitialize2::SetIoTypePreference и указать значение WdfDeviceIoBufferRetrievalDeferred . После включения отложенного извлечения драйвер может вызывать следующие методы для доступа к буферам запросов с помощью метода буферизованного или прямого доступа:
IWDFIoRequest2::RetrieveInputBuffer
IWDFIoRequest2::RetrieveInputMemory
IWDFIoRequest2::RetrieveOutputBuffer
IWDFIoRequest2::RetrieveOutputMemory
Драйвер, обеспечивающий отложенное извлечение, не может использовать IWDFIoRequest::GetInputMemory и IWDFIoRequest::GetOutputMemory для доступа к буферам.
Дополнительные сведения о доступе к буферам данных запроса ввода-вывода см. в статье Доступ к буферам данных в драйверах UMDF-Based.
Требования
Требование | Значение |
---|---|
Минимальная версия UMDF | 1,9 |
Верхняя часть | wudfddi_types.h (включая Wudfddi.h) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по