Compartir a través de


enumeración WDF_DEVICE_IO_BUFFER_RETRIEVAL (wudfddi_types.h)

[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción con UMDF.

La enumeración WDF_DEVICE_IO_BUFFER_RETRIEVAL se usa para especificar cuándo UMDF hace que los búferes de una solicitud de E/S estén disponibles para el controlador.

Syntax

typedef enum _WDF_DEVICE_IO_BUFFER_RETRIEVAL {
  WdfDeviceIoBufferRetrievalInvalid,
  WdfDeviceIoBufferRetrievalCopyImmediately,
  WdfDeviceIoBufferRetrievalDeferred,
  WdfDeviceIoBufferRetrievalMaximum
} WDF_DEVICE_IO_BUFFER_RETRIEVAL, *PWDF_DEVICE_IO_BUFFER_RETRIEVAL;

Constantes

 
WdfDeviceIoBufferRetrievalInvalid
Reservado para uso del sistema.
WdfDeviceIoBufferRetrievalCopyImmediately
UMDF hace que los búferes de una solicitud de E/S estén disponibles para el controlador (copiandolos en el proceso host del controlador UMDF) tan pronto como UMDF reciba la solicitud de E/S. Para obtener más información, vea la sección Comentarios que se muestra más adelante.
WdfDeviceIoBufferRetrievalDeferred
UMDF hace que los búferes de una solicitud de E/S estén disponibles para el controlador (copiandolos en el proceso host del controlador UMDF) solo cuando el controlador intenta acceder a los búferes. Para obtener más información, vea la sección Comentarios que se muestra más adelante.
WdfDeviceIoBufferRetrievalMaximum
Reservado para uso del sistema.

Comentarios

La enumeración WDF_DEVICE_IO_BUFFER_RETRIEVAL se usa como entrada para IWDFDeviceInitialize2::SetIoTypePreference.

En las versiones de UMDF anteriores a la versión 1.9, UMDF siempre hace que los búferes de una solicitud de E/S estén disponibles para el controlador (copiando los búferes en el proceso de host del controlador UMDF) en cuanto UMDF recibe la solicitud de E/S. IWDFIoRequest::GetInputMemory e IWDFIoRequest::GetOutputMemory son los únicos métodos de objeto a los que los controladores pueden llamar para acceder a los búferes.

Las versiones 1.9 y posteriores de UMDF pueden admitir la recuperación inmediata o diferida de búferes de solicitudes. Todos los controladores nuevos deben habilitar la recuperación diferida porque normalmente proporciona un mejor rendimiento del controlador que la recuperación inmediata. Si un controlador no habilita la recuperación diferida, UMDF usa la recuperación inmediata.

Para aplazar la recuperación de búferes, el controlador debe llamar a IWDFDeviceInitialize2::SetIoTypePreference y especificar el valor WdfDeviceIoBufferRetrievalDeferred . Una vez que el controlador habilite la recuperación diferida, puede llamar a los métodos siguientes para acceder a los búferes de solicitud, mediante el método de acceso directo o almacenado en búfer:

IWDFIoRequest2::RetrieveInputBuffer

IWDFIoRequest2::RetrieveInputMemory

IWDFIoRequest2::RetrieveOutputBuffer

IWDFIoRequest2::RetrieveOutputMemory

Un controlador que habilita la recuperación diferida no puede usar IWDFIoRequest::GetInputMemory e IWDFIoRequest::GetOutputMemory para acceder a los búferes.

Para obtener más información sobre el acceso a los búferes de datos de una solicitud de E/S, consulte Acceso a los búferes de datos en UMDF-Based controladores.

Requisitos

Requisito Value
Versión mínima de UMDF 1,9
Encabezado wudfddi_types.h (incluya Wudfddi.h)

Consulte también

WDF_DEVICE_IO_TYPE (UMDF)