Compartilhar via


estrutura SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG (sercx.h)

A estrutura SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG contém informações que a versão 2 da extensão da estrutura serial (SerCx2) usa para configurar um novo objeto de transmissão de DMA do sistema.

Sintaxe

typedef struct _SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG {
  ULONG                                                 Size;
  size_t                                                MaximumTransferLength;
  size_t                                                MinimumTransactionLength;
  ULONG                                                 DmaAlignment;
  ULONG                                                 MaximumScatterGatherFragments;
  DMA_WIDTH                                             DmaWidth;
  PHYSICAL_ADDRESS                                      DeviceAddress;
  PCM_PARTIAL_RESOURCE_DESCRIPTOR                       DmaDescriptor;
  ULONG                                                 MinimumTransferUnitOverride;
  BOOLEAN                                               Exclusive;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_INITIALIZE_TRANSACTION EvtSerCx2SystemDmaTransmitInitializeTransaction;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CLEANUP_TRANSACTION    EvtSerCx2SystemDmaTransmitCleanupTransaction;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL  EvtSerCx2SystemDmaTransmitConfigureDmaChannel;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_DRAIN_FIFO             EvtSerCx2SystemDmaTransmitDrainFifo;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CANCEL_DRAIN_FIFO      EvtSerCx2SystemDmaTransmitCancelDrainFifo;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO             EvtSerCx2SystemDmaTransmitPurgeFifo;
} SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG, *PSERCX2_SYSTEM_DMA_TRANSMIT_CONFIG;

Membros

Size

O tamanho, em bytes, dessa estrutura. O método SerCx2SystemDmaTransmitCreate usa esse membro para determinar qual versão da estrutura o chamador está usando. O tamanho dessa estrutura pode mudar em versões futuras do arquivo de cabeçalho Sercx.h.

MaximumTransferLength

O tamanho máximo padrão, em bytes, que o controlador serial pode manipular em uma única transferência de DMA do sistema. Se o tamanho do buffer na solicitação de gravação (IRP_MJ_WRITE) for maior que esse tamanho máximo, o SerCx2 usará várias transferências de DMA para lidar com a solicitação e limitará cada transferência ao comprimento máximo.

MinimumTransactionLength

O comprimento mínimo, em bytes, de uma transação de transmissão de DMA do sistema. Se o comprimento do buffer em uma solicitação de gravação for menor que esse comprimento mínimo, o SerCx2 usará PIO (E/S) programado para a transação.

DmaAlignment

Requisito de alinhamento de DMA. Especifica como o endereço inicial de uma transferência em uma transação de transmissão de DMA do sistema deve ser alinhado na memória. Defina esse membro como a constante de FILE_XXX_ALIGNMENT apropriada no arquivo de cabeçalho Wdm.h. Por exemplo, FILE_WORD_ALIGNMENT indica que o endereço DMA inicial deve ser alinhado a um limite de dois bytes na memória, FILE_LONG_ALIGNMENT indica que o endereço deve ser alinhado a um limite de quatro bytes e assim por diante. O SerCx2 não dá suporte a FILE_BYTE_ALIGNMENT. A MTU (unidade de transferência mínima) do adaptador DMA do sistema deve ser maior ou igual ao alinhamento necessário. Por exemplo, se a MTU for de quatro bytes, DmaAlignment deverá ser pelo menos FILE_LONG_ALIGNMENT.

MaximumScatterGatherFragments

O número máximo de fragmentos de buffer que podem ser especificados na lista de dispersão/coleta para uma transferência de DMA em uma transação de transmissão de DMA do sistema.

DmaWidth

A largura do registro de dados no endereço especificado por DeviceAddress. Os valores possíveis são Width8Bits, Width16Bits, Width32Bitse Width64Bits.

DeviceAddress

O endereço do dispositivo traduzido para o qual o controlador de DMA transfere dados a serem transmitidos. Para obter mais informações, consulte a descrição do membro do DeviceAddress no WDF_DMA_SYSTEM_PROFILE_CONFIG.

DmaDescriptor

Um ponteiro para a estrutura de CM_PARTIAL_RESOURCE_DESCRIPTOR que descreve o recurso DMA do sistema a ser usado para transações de transmissão. O driver do controlador serial obtém essa estrutura da lista de recursos brutos que recebe no EvtDevicePrepareHardware retorno de chamada que inicia o controlador serial.

MinimumTransferUnitOverride

Um valor de substituição a ser usado no lugar da unidade de transferência mínima padrão. O número de bytes especificados por um elemento em uma lista de dispersão/coleta deve ser um número inteiro múltiplo da unidade de transferência mínima. Um valor zero indica que a unidade de transferência mínima padrão deve ser usada. Para obter mais informações sobre a unidade de transferência mínima padrão, consulte DMA_ADAPTER_INFO_V1.

Exclusive

Se deve usar transações de transmissão de DMA do sistema exclusivamente para lidar com solicitações de gravação (IRP_MJ_WRITE). Defina como verdadeiro para indicar que as solicitações de gravação devem usar transações de transmissão do sistema DMA exclusivamente. Defina como FALSE para indicar que as solicitações de gravação podem usar uma combinação de transações de transmissão de DMA do sistema e transações de transmissão de PIO.

Defina esse membro como VERDADEIRO somente se a unidade de transferência mínima para transações de transmissão do sistema DMA for de um byte, o comprimento mínimo da transação for um byte e o buffer de gravação da transação puder iniciar em qualquer limite de byte na memória.

Se Exclusivo for TRUE, os membros MinimumTransferUnitOverride, Alignmente MinimumTransactionLength deverão ser zero.

EvtSerCx2SystemDmaTransmitInitializeTransaction

Um ponteiro para o EvtSerCx2SystemDmaTransmitInitializeTransaction implementado pelo driver função de retorno de chamada de evento. Esse membro é opcional e pode ser definido como NULL para indicar que o driver não implementa a função.

EvtSerCx2SystemDmaTransmitCleanupTransaction

Um ponteiro para o EvtSerCx2SystemDmaTransmitCleanupTransaction implementado pelo driver função de retorno de chamada de evento. Esse membro é opcional e pode ser definido como NULL para indicar que o driver não implementa a função.

EvtSerCx2SystemDmaTransmitConfigureDmaChannel

Um ponteiro para o EvtSerCx2SystemDmaTransmitConfigureDmaChannel implementado pelo driver função de retorno de chamada de evento. Esse membro é opcional e pode ser definido como NULL para indicar que o driver não implementa a função.

EvtSerCx2SystemDmaTransmitDrainFifo

Um ponteiro para o EvtSerCx2SystemDmaTransmitDrainFifo implementado pelo driver função de retorno de chamada de evento. Esse membro é opcional e pode ser definido como NULL para indicar que o driver não implementa a função. No entanto, um driver que implementa essa função também deve implementar funções EvtSerCx2SystemDmaTransmitCancelDrainFifo e EvtSerCx2SystemDmaTransmitPurgeFifo.

EvtSerCx2SystemDmaTransmitCancelDrainFifo

Um ponteiro para o EvtSerCx2SystemDmaTransmitCancelDrainFifo implementado pelo driver função de retorno de chamada de evento. Esse membro é opcional e pode ser definido como NULL para indicar que o driver não implementa a função. No entanto, um driver que implementa essa função também deve implementar funções EvtSerCx2SystemDmaTransmitDrainFifo e EvtSerCx2SystemDmaTransmitPurgeFifo.

EvtSerCx2SystemDmaTransmitPurgeFifo

Um ponteiro para o EvtSerCx2SystemDmaTransmitPurgeFifo implementado pelo driver função de retorno de chamada de evento. Esse membro é opcional e pode ser definido como NULL para indicar que o driver não implementa a função. No entanto, um driver que implementa essa função também deve implementar funções EvtSerCx2SystemDmaTransmitDrainFifo e funções de EvtSerCx2SystemDmaTransmitCancelDrainFifo.

Observações

O método SerCx2SystemDmaTransmitCreate aceita um ponteiro para uma estrutura SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG como um parâmetro de entrada. Antes de chamar SerCx2SystemDmaTransmitCreate, chame a função SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT para inicializar essa estrutura.

Requisitos

Requisito Valor
de cliente com suporte mínimo Suporte para começar com Windows 8.1.
cabeçalho sercx.h

Consulte também

DMA_ADAPTER_INFO_V1

EvtSerCx2SystemDmaTransmitCancelDrainFifo

EvtSerCx2SystemDmaTransmitCleanupTransaction

EvtSerCx2SystemDmaTransmitConfigureDmaChannel

EvtSerCx2SystemDmaTransmitDrainFifo

EvtSerCx2SystemDmaTransmitInitializeTransaction

EvtSerCx2SystemDmaTransmitPurgeFifo

IRP_MJ_WRITE

SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT

SerCx2SystemDmaTransmitCreate

WdfDmaEnablerSetMaximumScatterGatherElements