Freigeben über


SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG Struktur (sercx.h)

Die SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG-Struktur enthält Informationen, die Version 2 der seriellen Framework-Erweiterung (SerCx2) zum Konfigurieren eines neuen System-DMA-Übertragungsobjekts verwendet.

Syntax

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;

Angehörige

Size

Die Größe dieser Struktur in Byte. Die SerCx2SystemDmaTransmitCreate Methode verwendet dieses Element, um zu bestimmen, welche Struktur der Aufrufer verwendet. Die Größe dieser Struktur kann sich in zukünftigen Versionen der Headerdatei Sercx.h ändern.

MaximumTransferLength

Die standardmäßige maximale Größe in Byte, die der serielle Controller in einer einzigen System-DMA-Übertragung verarbeiten kann. Wenn die Größe des Puffers in der Schreibanforderung (IRP_MJ_WRITE) größer als diese maximale Größe ist, verwendet SerCx2 mehrere DMA-Übertragungen, um die Anforderung zu verarbeiten, und begrenzt jede Übertragung auf die maximale Länge.

MinimumTransactionLength

Die Mindestlänge einer System-DMA-Übertragungstransaktion in Bytes. Wenn die Länge des Puffers in einer Schreibanforderung kleiner als diese Mindestlänge ist, verwendet SerCx2 für die Transaktion programmierte E/A (PIO).

DmaAlignment

DMA-Ausrichtungsanforderung. Gibt an, wie die Startadresse einer Übertragung in einer System-DMA-Übertragungstransaktion im Arbeitsspeicher ausgerichtet werden muss. Legen Sie dieses Element auf die entsprechende FILE_XXX-_ALIGNMENT Konstante in der Wdm.h-Headerdatei fest. Beispielsweise gibt FILE_WORD_ALIGNMENT an, dass die Start-DMA-Adresse an einer Zwei-Byte-Grenze im Arbeitsspeicher ausgerichtet werden muss, FILE_LONG_ALIGNMENT gibt an, dass die Adresse an einer Grenze von vier Byte ausgerichtet werden muss usw. SerCx2 unterstützt keine FILE_BYTE_ALIGNMENT. Die Mindestübertragungseinheit (MTU) des System-DMA-Adapters sollte größer oder gleich der erforderlichen Ausrichtung sein. Wenn die MTU beispielsweise vier Byte ist, muss DmaAlignment- mindestens FILE_LONG_ALIGNMENT sein.

MaximumScatterGatherFragments

Die maximale Anzahl von Pufferfragmenten, die in der Punkt/Gather-Liste für eine DMA-Übertragung in einer System-DMA-Übertragungstransaktion angegeben werden können.

DmaWidth

Die Breite des Datenregisters an der adresse, die durch DeviceAddressangegeben wird. Mögliche Werte sind Width8Bits, Width16Bits, Width32Bitsund Width64Bits.

DeviceAddress

Die übersetzte Geräteadresse, an die der DMA-Verantwortliche Daten überträgt, um übertragen zu werden. Weitere Informationen finden Sie in der Beschreibung des DeviceAddress- Mitglieds in WDF_DMA_SYSTEM_PROFILE_CONFIG.

DmaDescriptor

Ein Zeiger auf die CM_PARTIAL_RESOURCE_DESCRIPTOR-Struktur, die die System-DMA-Ressource beschreibt, die für die Übertragung von Transaktionen verwendet werden soll. Der serielle Controllertreiber ruft diese Struktur aus der Rohressourcenliste ab, die er in der EvtDevicePreparePrepareHardware Rückruf empfängt, der den seriellen Controller startet.

MinimumTransferUnitOverride

Ein Außerkraftsetzungswert, der anstelle der standardmäßigen Mindestübertragungseinheit verwendet werden soll. Die Anzahl der Byte, die durch ein Element in einer Punkt/Gather-Liste angegeben werden, muss eine ganze Zahl von mehreren der mindesten Übertragungseinheit sein. Ein Wert von Null gibt an, dass die standardmäßige Mindestübertragungseinheit verwendet werden soll. Weitere Informationen zur standardmäßigen Mindestübertragungseinheit finden Sie unter DMA_ADAPTER_INFO_V1.

Exclusive

Gibt an, ob System-DMA-Transmissionstransaktionen ausschließlich zum Verarbeiten von Schreibanforderungen (IRP_MJ_WRITE) verwendet werden sollen. Legen Sie auf TRUE- fest, um anzugeben, dass Schreibanforderungen ausschließlich System-DMA-Übertragungstransaktionen verwenden sollten. Legen Sie auf FALSE- fest, um anzugeben, dass Schreibanforderungen eine Kombination aus System-DMA-Übertragungstransaktionen und PIO-Übertragungstransaktionen verwenden können.

Legen Sie dieses Element auf TRUE fest, nur, wenn die minimale Übertragungseinheit für System-DMA-Übertragungstransaktionen ein Byte ist, die mindeste Transaktionslänge ein Byte ist und der Schreibpuffer für die Transaktion für jede Bytegrenze im Arbeitsspeicher gestartet werden kann.

Wenn ExclusiveTRUEist, müssen die Elemente MinimumTransferUnitOverride, Alignmentund MinimumTransactionLength Member null sein.

EvtSerCx2SystemDmaTransmitInitializeTransaction

Ein Zeiger auf die vom Treiber implementierte EvtSerCx2SystemDmaTransmitInitializeTransaction Ereignisrückruffunktion. Dieses Element ist optional und kann auf NULL- festgelegt werden, um anzugeben, dass der Treiber die Funktion nicht implementiert.

EvtSerCx2SystemDmaTransmitCleanupTransaction

Ein Zeiger auf die vom Treiber implementierte EvtSerCx2SystemDmaTransmitCleanupTransaction Ereignisrückruffunktion. Dieses Element ist optional und kann auf NULL- festgelegt werden, um anzugeben, dass der Treiber die Funktion nicht implementiert.

EvtSerCx2SystemDmaTransmitConfigureDmaChannel

Ein Zeiger auf die vom Treiber implementierte EvtSerCx2SystemDmaTransmitConfigureDmaChannel Ereignisrückruffunktion. Dieses Element ist optional und kann auf NULL- festgelegt werden, um anzugeben, dass der Treiber die Funktion nicht implementiert.

EvtSerCx2SystemDmaTransmitDrainFifo

Ein Zeiger auf die vom Treiber implementierte EvtSerCx2SystemDmaTransmitDrainFifo Ereignisrückruffunktion. Dieses Element ist optional und kann auf NULL- festgelegt werden, um anzugeben, dass der Treiber die Funktion nicht implementiert. Ein Treiber, der diese Funktion implementiert, muss jedoch auch EvtSerCx2SystemDmaTransmitCancelDrainFifo und EvtSerCx2SystemDmaTransmitPurgeFifo Funktionen implementieren.

EvtSerCx2SystemDmaTransmitCancelDrainFifo

Ein Zeiger auf die vom Treiber implementierte EvtSerCx2SystemDmaTransmitCancelDrainFifo Ereignisrückruffunktion. Dieses Element ist optional und kann auf NULL- festgelegt werden, um anzugeben, dass der Treiber die Funktion nicht implementiert. Ein Treiber, der diese Funktion implementiert, muss jedoch auch EvtSerCx2SystemDmaTransmitDrainFifo und EvtSerCx2SystemDmaTransmitPurgeFifo Funktionen implementieren.

EvtSerCx2SystemDmaTransmitPurgeFifo

Ein Zeiger auf die vom Treiber implementierte EvtSerCx2SystemDmaTransmitPurgeFifo Ereignisrückruffunktion. Dieses Element ist optional und kann auf NULL- festgelegt werden, um anzugeben, dass der Treiber die Funktion nicht implementiert. Ein Treiber, der diese Funktion implementiert, muss jedoch auch EvtSerCx2SystemDmaTransmitDrainFifo und EvtSerCx2SystemDmaTransmitCancelDrainFifo Funktionen implementieren.

Bemerkungen

Die SerCx2SystemDmaTransmitCreate Methode akzeptiert einen Zeiger auf eine SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG Struktur als Eingabeparameter. Rufen Sie vor dem Aufrufen SerCx2SystemDmaTransmitCreatedie SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT-Funktion auf, um diese Struktur zu initialisieren.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Wird ab Windows 8.1 unterstützt.
Header- sercx.h

Siehe auch

DMA_ADAPTER_INFO_V1

EvtSerCx2SystemDmaTransmitCancelDrainFifo

EvtSerCx2SystemDmaTransmitCleanupTransaction

EvtSerCx2SystemDmaTransmitConfigureDmaChannel

EvtSerCx2SystemDmaTransmitDrainFifo

EvtSerCx2SystemDmaTransmitInitializeTransaction

EvtSerCx2SystemDmaTransmitPurgeFifo

IRP_MJ_WRITE

SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT

SerCx2SystemDmaTransmitCreate

WdfDmaEnablerSetMaximumScatterGatherElements