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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de