WDF_DMA_ENABLER_CONFIG_FLAGS enumeración (wdfdmaenabler.h)
[Solo se aplica a KMDF]
El tipo de enumeración WDF_DMA_ENABLER_CONFIG_FLAGS define marcas que se usan en la estructura WDF_DMA_ENABLER_CONFIG de un controlador.
Syntax
typedef enum _WDF_DMA_ENABLER_CONFIG_FLAGS {
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION = 0x00000001,
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER = 0x00000002
} WDF_DMA_ENABLER_CONFIG_FLAGS;
Constantes
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION Valor: 0x00000001 La marca WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION solo se aplica a los siguientes perfiles de DMA:
De forma predeterminada, cuando no se establece WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION y el WDF_DMA_PROFILE es uno de los de la lista anterior, WDF crea una lista de búsqueda de listas de dispersión y recopilación que usa esta transacción del adaptador de DMA. . Las entradas de lista se inicializan para permitir el máximo especificado. longitud de transferencia. Cuando se ejecuta la transacción, WDF llama a la función de entrada BuildScatterGatherList . Controladores de progreso hacia delante no debe establecer esta marca y debe usar uno de los cuatro perfiles mostrados anteriormente. Cuando se establece WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION y el WDF_DMA_PROFILE es uno de los de la lista anterior, WDF no crea una lista de lookaside. Cuando se ejecuta la transacción, WDF llama a GetScatterGatherList. Establecer WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION puede dar lugar a una reducción del uso de memoria, especialmente cuando la longitud máxima de la transferencia es grande. Sin embargo, establecer esta marca puede provocar un error al realizar operaciones DMA en condiciones de memoria baja. Para garantizar el progreso hacia delante cuando se establece WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION , un controlador puede usar un habilitador DMA independiente o transferir transferencias a través de un búfer común. |
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER Valor: 0x00000002 La marca WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER está disponible a partir de la versión 1.19 de KMDF. Esta marca también requiere DMA versión 3. Para seleccionar DMA versión 3, establezca el miembro WdmDmaVersionOverride de WDF_DMA_ENABLER_CONFIG en 3. Esta marca se aplica a todos los perfiles de DMA. Cuando se establece, WDF no fragmenta ningún WDFDMATRANSACTION creado con este habilitador en varias transferencias DMA. Si esto no es posible, se produce un error en los intentos de inicializar o ejecutar la transacción. Esta opción está pensada para dispositivos que necesitan recibir todos los datos en una sola operación DMA. Los controladores también tienen la opción de especificar esto en un nivel por transacción con WdfDmaTransactionSetSingleTransferRequirement. Para obtener más información, consulta Usar DMA de transferencia única. |
Comentarios
Puede especificar un OR bit a bit válido de los valores de esta página para el miembro Flags de la estructura WDF_DMA_ENABLER_CONFIG .
Requisitos
Requisito | Value |
---|---|
Versión mínima de KMDF | 1.11 |
Encabezado | wdfdmaenabler.h (include Wdf.h) |