перечисление 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)

См. также раздел

WDF_DEVICE_IO_TYPE (UMDF)