Compartilhar via


enumeração WDF_DMA_ENABLER_CONFIG_FLAGS (wdfdmaenabler.h)

[Aplica-se somente ao KMDF]

O tipo de enumeração WDF_DMA_ENABLER_CONFIG_FLAGS define sinalizadores usados na estrutura de WDF_DMA_ENABLER_CONFIG de um driver.

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
O sinalizador WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION aplica-se somente aos seguintes perfis de AMD:


  • WdfDmaProfileScatterGather

  • WdfDmaProfileScatterGather64

  • WdfDmaProfileScatterGatherDuplex

  • WdfDmaProfileScatterGather64Duplex



Por padrão, quando WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION não está definido e o WDF_DMA_PROFILE é um dos da lista anterior, WDF
cria uma lista lookaside de listas de dispersão/coleta que é usada pela transação desse adaptador de DMA
banco de dados. As entradas da lista são inicializadas para permitir o máximo especificado
tamanho da transferência. Quando a transação é executada, o WDF chama a função de entrada BuildScatterGatherList . Encaminhar drivers de progresso
não deve definir esse sinalizador e deve usar um dos quatro perfis mostrados anteriormente.

Quando WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION é definido e o WDF_DMA_PROFILE é um dos da lista anterior, o WDF não cria uma lista lookaside. Quando a transação é executada, o WDF chama GetScatterGatherList.

Definir WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION pode resultar em uso reduzido de memória, especialmente quando o comprimento máximo de transferência é grande. No entanto, definir esse sinalizador pode causar falha ao executar operações de AMD em condições de memória insuficiente. Para garantir o progresso quando WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION estiver definido, um driver pode usar um habilitador de DMA separado ou transferir transferências por meio de um buffer comum.
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER
Valor: 0x00000002
O sinalizador WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER está disponível a partir da versão 1.19 do KMDF. Esse sinalizador também requer o AMD versão 3.
Para selecionar o DMA versão 3, defina o membro WdmDmaVersionOverride de WDF_DMA_ENABLER_CONFIG como 3.

Esse sinalizador se aplica a todos os perfis de DMA. Quando definido, o WDF não fragmenta nenhum WDFDMATRANSACTION criado com esse habilitador em várias transferências de DMA. Se isso não for possível, as tentativas de inicializar ou executar a transação falharão. Essa opção destina-se a dispositivos que precisam receber todos os dados em uma única operação de DMA.

Os drivers também têm a opção de especificar isso em um nível por transação com WdfDmaTransactionSetSingleTransferRequirement.

Para obter mais informações, consulte Usando o DMA de transferência única.

Comentários

Você pode especificar um OR bit a bit válido dos valores nesta página para o membro Flags da estrutura WDF_DMA_ENABLER_CONFIG .

Requisitos

Requisito Valor
Versão mínima do KMDF 1.11
Cabeçalho wdfdmaenabler.h (inclua Wdf.h)

Confira também

WDF_DMA_ENABLER_CONFIG

WDF_DMA_PROFILE

WdfDmaTransactionSetSingleTransferRequirement