From: Ashok Bruno on 17 Nov 2006 17:55 Can I have multiple DMA transactions on the same DMA enabler? ie. only one DMA transaction happens at a time, but to avoid creating scatter gather lists, memory, etc. each DMA transaction remain in existence until the app exits.
From: Stephan Wolf [MVP] on 18 Nov 2006 15:05 What is a "DMA enabler"? DMA transactions are usually set up and then executed. The hardware DMA engine will take care of coordinating multiple "concurrent" DMA transactions. No need to do anything in software here. Not sure if I got your question right, though. Stephan --- Ashok Bruno wrote: > Can I have multiple DMA transactions on the same DMA enabler? > ie. only one DMA transaction happens at a time, but to avoid creating > scatter gather lists, memory, etc. each DMA transaction remain in existence > until the app exits.
From: already5chosen on 18 Nov 2006 21:21 Stephan Wolf [MVP] wrote: > What is a "DMA enabler"? "DMA enabler" is a WDF wrapper object for WDM PDMA_ADAPTER. "DMA transaction" is WDF wrapper object for WDM GetScatterGatherList() and associated DMA adapter routines. WdfDmaTransactionCreate()=Framework Housekeeping WdfDmaTransactionInitialize()=More Framework Housekeeping WdfDmaTransactionExecute()=GetScatterGatherList() WdfDmaTransactionRelease()=PutScatterGatherList() EvtProgramDma()=DMA ExecutionRoutine() So translating the question into WDM terms, OP wants to call GetScatterGatherList() several times for the same DMA_ADAPTER object without calling PutScatterGatherList() in between. He wants to reuse each scatter/gather list for several HW DMA operations. I think, what he wants is possible but not recommended. Back in 1999-2000 I did something similar myself. But with today's processors building scatter/gather lists is sufficiently fast so I would rather avoid this sort of excessive optimization unless we are talking about transfer rates of over 1GB/s.
|
Pages: 1 Prev: Help: installing WDK 5840 sample minispy Next: InitializePrintMonitor2 |