Compartir a través de


estructura SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG (sercx.h)

La estructura SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG contiene información que usa la versión 2 de la extensión de marco serie (SerCx2) para configurar un nuevo objeto system-DMA-transmit.

Sintaxis

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;

Miembros

Size

Tamaño, en bytes, de esta estructura. El método SerCx2SystemDmaTransmitCreate usa este miembro para determinar qué versión de la estructura usa el autor de la llamada. El tamaño de esta estructura puede cambiar en versiones futuras del archivo de encabezado Sercx.h.

MaximumTransferLength

Tamaño máximo predeterminado, en bytes, que el controlador serie puede controlar en una sola transferencia DMA del sistema. Si el tamaño del búfer en la solicitud de escritura (IRP_MJ_WRITE) es mayor que este tamaño máximo, SerCx2 usa varias transferencias DMA para controlar la solicitud y limita cada transferencia a la longitud máxima.

MinimumTransactionLength

Longitud mínima, en bytes, de una transacción system-DMA-transmit. Si la longitud del búfer en una solicitud de escritura es inferior a esta longitud mínima, SerCx2 usa E/S programada (PIO) para la transacción.

DmaAlignment

Requisito de alineación de DMA. Especifica cómo se debe alinear la dirección inicial de una transferencia en una transacción system-DMA-transmit en la memoria. Establezca este miembro en la constante_ALIGNMENT XXX FILE_adecuada en el archivo de encabezado Wdm.h. Por ejemplo, FILE_WORD_ALIGNMENT indica que la dirección DMA inicial debe alinearse con un límite de dos bytes en la memoria, FILE_LONG_ALIGNMENT indica que la dirección debe alinearse con un límite de cuatro bytes, etc. SerCx2 no admite FILE_BYTE_ALIGNMENT. La unidad de transferencia mínima (MTU) del adaptador DMA del sistema debe ser mayor o igual que la alineación necesaria. Por ejemplo, si el MTU es de cuatro bytes, DmaAlignment debe ser al menos FILE_LONG_ALIGNMENT.

MaximumScatterGatherFragments

El número máximo de fragmentos de búfer que se pueden especificar en la lista de dispersión y recopilación para una transferencia DMA en una transacción de transmisión del sistema DMA.

DmaWidth

Ancho del registro de datos en la dirección especificada por DeviceAddress. Los valores posibles son Width8Bits, Width16Bits, Width32Bitsy Width64Bits.

DeviceAddress

Dirección del dispositivo traducida a la que el controlador DMA transfiere los datos que se van a transmitir. Para obtener más información, consulte la descripción del miembro DeviceAddress en WDF_DMA_SYSTEM_PROFILE_CONFIG.

DmaDescriptor

Puntero a la estructura CM_PARTIAL_RESOURCE_DESCRIPTOR que describe el recurso DMA del sistema que se va a usar para transmitir transacciones. El controlador de controlador serie obtiene esta estructura de la lista de recursos sin procesar que recibe en el EvtDevicePrepareHardware devolución de llamada que inicia el controlador serie.

MinimumTransferUnitOverride

Valor de invalidación que se va a usar en lugar de la unidad de transferencia mínima predeterminada. El número de bytes especificados por un elemento de una lista de dispersión y recopilación debe ser un entero múltiplo de la unidad de transferencia mínima. Un valor de cero indica que se debe usar la unidad de transferencia mínima predeterminada. Para obtener más información sobre la unidad de transferencia mínima predeterminada, consulte DMA_ADAPTER_INFO_V1.

Exclusive

Si se usan transacciones system-DMA-transmit exclusivamente para controlar las solicitudes de escritura (IRP_MJ_WRITE). Establézcalo en TRUE para indicar que las solicitudes de escritura deben usar transacciones system-DMA-transmit exclusivamente. Establézcalo en FALSE para indicar que las solicitudes de escritura pueden usar una combinación de transacciones system-DMA-transmit y transacciones PIO-transmit.

Establezca este miembro en TRUE solo si la unidad de transferencia mínima para las transacciones system-DMA-transmit es de un byte, la longitud mínima de la transacción es de un byte y el búfer de escritura para la transacción puede iniciarse en cualquier límite de bytes en la memoria.

Si exclusivo es TRUE, los miembros MinimumTransferUnitOverride, Alignmenty MinimumTransactionLength miembros deben ser cero.

EvtSerCx2SystemDmaTransmitInitializeTransaction

Puntero al controlador implementado función de devolución de llamada de eventos EvtSerCx2SystemDmaTransmitInitializeTransaction. Este miembro es opcional y se puede establecer en NULL para indicar que el controlador no implementa la función.

EvtSerCx2SystemDmaTransmitCleanupTransaction

Puntero al controlador implementado función de devolución de llamada de eventos EvtSerCx2SystemDmaTransmitCleanupTransaction. Este miembro es opcional y se puede establecer en NULL para indicar que el controlador no implementa la función.

EvtSerCx2SystemDmaTransmitConfigureDmaChannel

Puntero al controlador implementado función de devolución de llamada de eventos EvtSerCx2SystemDmaTransmitConfigureDma Channel. Este miembro es opcional y se puede establecer en NULL para indicar que el controlador no implementa la función.

EvtSerCx2SystemDmaTransmitDrainFifo

Puntero al controlador implementado función de devolución de llamada de eventos EvtSerCx2SystemDmaTransmitDrainFi fo. Este miembro es opcional y se puede establecer en NULL para indicar que el controlador no implementa la función. Sin embargo, un controlador que implementa esta función también debe implementar evtSerCx2SystemDmaTransmitCancelDrainFifo y EvtSerCx2SystemDmaTransmitPurgeFifo funciones.

EvtSerCx2SystemDmaTransmitCancelDrainFifo

Puntero al controlador implementado función de devolución de llamada de eventos EvtSerCx2SystemDmaTransmitCancelDrainFi fo. Este miembro es opcional y se puede establecer en NULL para indicar que el controlador no implementa la función. Sin embargo, un controlador que implementa esta función también debe implementar funciones de EvtSerCx2SystemDmaTransmitDrainFi fo y EvtSerCx2SystemDmaTransmitPurgeFifo.

EvtSerCx2SystemDmaTransmitPurgeFifo

Puntero al controlador implementado función de devolución de llamada de eventos EvtSerCx2SystemDmaTransmitPurgeFi fo. Este miembro es opcional y se puede establecer en NULL para indicar que el controlador no implementa la función. Sin embargo, un controlador que implementa esta función también debe implementar funciones de EvtSerCx2SystemDmaTransmitDrainFifo y EvtSerCx2SystemDmaTransmitCancelDrainFifo.

Observaciones

El método SerCx2SystemDmaTransmitCreate acepta un puntero a una estructura de SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG como parámetro de entrada. Antes de llamar a SerCx2SystemDmaTransmitCreate, llame a la función SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT para inicializar esta estructura.

Requisitos

Requisito Valor
cliente mínimo admitido Se admite a partir de Windows 8.1.
encabezado de sercx.h

Consulte también

DMA_ADAPTER_INFO_V1

EvtSerCx2SystemDmaTransmitCancelDrainFifo

evtSerCx2SystemDmaTransmitCleanupTransaction

EvtSerCx2SystemDmaTransmitConfigureDmaChannel

EvtSerCx2SystemDmaTransmitDrainFifo

EvtSerCx2SystemDmaTransmitInitializeTransaction

EvtSerCx2SystemDmaTransmitPurgeFifo

IRP_MJ_WRITE

SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT

SerCx2SystemDmaTransmitCreate

WdfDmaEnablerSetMaximumScatterGatherElements