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_
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
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
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
EvtSerCx2SystemDmaTransmitCancelDrainFifo
evtSerCx2SystemDmaTransmitCleanupTransaction
EvtSerCx2SystemDmaTransmitConfigureDmaChannel
EvtSerCx2SystemDmaTransmitDrainFifo
EvtSerCx2SystemDmaTransmitInitializeTransaction
EvtSerCx2SystemDmaTransmitPurgeFifo