Condividi tramite


struttura SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG (sercx.h)

La struttura SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG contiene informazioni usate dalla versione 2 dell'estensione del framework seriale (SerCx2) per configurare un nuovo oggetto system-DMA-transmit.

Sintassi

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;

Membri

Size

Dimensione, in byte, di questa struttura. Il metodo SerCx2SystemDmaTransmitCreate utilizza questo membro per determinare la versione della struttura utilizzata dal chiamante. Le dimensioni di questa struttura potrebbero cambiare nelle versioni future del file di intestazione Sercx.h.

MaximumTransferLength

Dimensioni massime predefinite, in byte, che il controller seriale può gestire in un singolo trasferimento DMA di sistema. Se la dimensione del buffer nella richiesta di scrittura (IRP_MJ_WRITE) è maggiore di questa dimensione massima, SerCx2 usa più trasferimenti DMA per gestire la richiesta e limita ogni trasferimento alla lunghezza massima.

MinimumTransactionLength

Lunghezza minima, in byte, di una transazione di trasmissione DMA di sistema. Se la lunghezza del buffer in una richiesta di scrittura è inferiore a questa lunghezza minima, SerCx2 usa le operazioni di I/O programmate per la transazione.

DmaAlignment

Requisito di allineamento DMA. Specifica il modo in cui l'indirizzo iniziale di un trasferimento in una transazione di trasmissione DMA di sistema deve essere allineato in memoria. Impostare questo membro sulla costante_ALIGNMENT FILE_XXX appropriata nel file di intestazione Wdm.h. Ad esempio, FILE_WORD_ALIGNMENT indica che l'indirizzo DMA iniziale deve essere allineato a un limite a due byte in memoria, FILE_LONG_ALIGNMENT indica che l'indirizzo deve essere allineato a un limite a quattro byte e così via. SerCx2 non supporta FILE_BYTE_ALIGNMENT. L'unità di trasferimento minima (MTU) dell'adattatore DMA di sistema deve essere maggiore o uguale all'allineamento richiesto. Ad esempio, se la MTU è di quattro byte, DmaAlignment deve essere almeno FILE_LONG_ALIGNMENT.

MaximumScatterGatherFragments

Numero massimo di frammenti di buffer che possono essere specificati nell'elenco a dispersione/raccolta per un trasferimento DMA in una transazione di trasmissione DMA di sistema.

DmaWidth

Larghezza del registro dati nell'indirizzo specificato da DeviceAddress. I valori possibili sono Width8Bits, Width16Bits, Width32Bitse Width64Bits.

DeviceAddress

Indirizzo del dispositivo convertito in cui il controller DMA trasferisce i dati da trasmettere. Per altre informazioni, vedere la descrizione del membro DeviceAddress in WDF_DMA_SYSTEM_PROFILE_CONFIG.

DmaDescriptor

Puntatore alla struttura CM_PARTIAL_RESOURCE_DESCRIPTOR che descrive la risorsa DMA di sistema da usare per la trasmissione delle transazioni. Il driver del controller seriale ottiene questa struttura dall'elenco di risorse non elaborate che riceve nel EvtDevicePrepareHardware callback che avvia il controller seriale.

MinimumTransferUnitOverride

Valore di override da usare al posto dell'unità di trasferimento minima predefinita. Il numero di byte specificato da un elemento in un elenco a dispersione/raccolta deve essere un multiplo intero dell'unità di trasferimento minima. Il valore zero indica che deve essere usata l'unità di trasferimento minima predefinita. Per altre informazioni sull'unità di trasferimento minima predefinita, vedere DMA_ADAPTER_INFO_V1.

Exclusive

Indica se usare transazioni di trasmissione DMA di sistema esclusivamente per gestire le richieste di scrittura (IRP_MJ_WRITE). Impostare su true per indicare che le richieste di scrittura devono usare esclusivamente transazioni di trasmissione DMA di sistema. Impostare su false per indicare che le richieste di scrittura possono usare una combinazione di transazioni di trasmissione DMA di sistema e transazioni di trasmissione PIO.

Impostare questo membro su TRUE solo se l'unità di trasferimento minima per le transazioni di trasmissione DMA di sistema è di un byte, la lunghezza minima della transazione è di un byte e il buffer di scrittura per la transazione può iniziare su qualsiasi limite di byte in memoria.

Se exclusive è TRUE, i membri MinimumTransferUnitOverride, Alignmente MinimumTransactionLength devono essere pari a zero.

EvtSerCx2SystemDmaTransmitInitializeTransaction

Puntatore al driver implementato EvtSerCx2SystemDmaTransmitInitializeTransaction funzione di callback degli eventi. Questo membro è facoltativo e può essere impostato su NULL per indicare che il driver non implementa la funzione.

EvtSerCx2SystemDmaTransmitCleanupTransaction

Puntatore al driver implementato EvtSerCx2SystemDmaTransmitCleanupTransaction funzione di callback degli eventi. Questo membro è facoltativo e può essere impostato su NULL per indicare che il driver non implementa la funzione.

EvtSerCx2SystemDmaTransmitConfigureDmaChannel

Puntatore alla implementata dal driver EvtSerCx2SystemDmaTransmitConfigureDmaChannel funzione di callback degli eventi. Questo membro è facoltativo e può essere impostato su NULL per indicare che il driver non implementa la funzione.

EvtSerCx2SystemDmaTransmitDrainFifo

Puntatore al driver implementato EvtSerCx2SystemDmaTransmitDrainFifo funzione di callback degli eventi. Questo membro è facoltativo e può essere impostato su NULL per indicare che il driver non implementa la funzione. Tuttavia, un driver che implementa questa funzione deve implementare anche EvtSerCx2SystemDmaTransmitCancelDrainFifo e EvtSerCx2SystemDmaTransmitPurgeFifo funzioni.

EvtSerCx2SystemDmaTransmitCancelDrainFifo

Puntatore alla funzione di callback degli eventi implementata dal driver EvtSerCx2SystemDmaTransmitCancelDrainFifo. Questo membro è facoltativo e può essere impostato su NULL per indicare che il driver non implementa la funzione. Tuttavia, un driver che implementa questa funzione deve implementare anche funzioni EvtSerCx2SystemDmaTransmitDrainFifo e EvtSerCx2SystemDmaTransmitPurgeFifo.

EvtSerCx2SystemDmaTransmitPurgeFifo

Puntatore alla funzione di callback degli eventi implementata dal driver EvtSerCx2SystemDmaTransmitPurgeFifo. Questo membro è facoltativo e può essere impostato su NULL per indicare che il driver non implementa la funzione. Tuttavia, un driver che implementa questa funzione deve implementare anche EvtSerCx2SystemDmaTransmitDrainFifo e EvtSerCx2SystemDmaTransmitCancelDrainFifo funzioni.

Osservazioni

Il metodo SerCx2SystemDmaTransmitCreate accetta un puntatore a una struttura SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG come parametro di input. Prima di chiamare SerCx2SystemDmaTransmitCreate, chiamare la funzione SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT per inizializzare questa struttura.

Fabbisogno

Requisito Valore
client minimo supportato Supportato a partire da Windows 8.1.
intestazione sercx.h

Vedere anche

DMA_ADAPTER_INFO_V1

EvtSerCx2SystemDmaTransmitCancelDrainFifo

EvtSerCx2SystemDmaTransmitCleanupTransaction

EvtSerCx2SystemDmaTransmitConfigureDmaChannel

EvtSerCx2SystemDmaTransmitDrainFifo

EvtSerCx2SystemDmaTransmitInitializeTransaction

EvtSerCx2SystemDmaTransmitPurgeFifo

IRP_MJ_WRITE

SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT

SerCx2SystemDmaTransmitCreare

WdfDmaEnablerSetMaximumScatterGatherElements