Concurrent DMA transactions

Hi All!

Quick question:
Based on https://msdn.microsoft.com/en-us/library/windows/hardware/ff543291(v=vs.85).aspx,
Is there any framework limitation to fire(WdfDmaTransactionExecute) multiple concurrent transaction objects on a single DMA device ? (let’s assume that my dma programming logic (EvtProgramDma) handle properly that kind of situation).

Thanks,
Bob

Hi Bob,

You can have concurrent transactions for scatter/gather DMA enablers. For packet-based enablers, you need to explicitly request DMA version 3 by setting WDF_DMA_ENABLER_CONFIG.WdmDmaVersionOverride=3 when you create the WDFDMAENABLER object.

Thanks you for answare!

But for my clarification:
I can fire multiple concurrent transaction on one DMA enabler object (many[
*fired *transactions] to *one*[DMA enabler] relation) or I have to create
next separate DMA enabler objects for each of transaction
(one[fired transaction] to one[DMA enabler] relation) ?

Bob

2015-12-08 2:11 GMT+01:00 :

> Hi Bob,
>
> You can have concurrent transactions for scatter/gather DMA enablers. For
> packet-based enablers, you need to explicitly request DMA version 3 by
> setting WDF_DMA_ENABLER_CONFIG.WdmDmaVersionOverride=3 when you create the
> WDFDMAENABLER object.
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list online at: <
> http://www.osronline.com/showlists.cfm?list=ntdev&gt;
>
> MONTHLY seminars on crash dump analysis, WDF, Windows internals and
> software drivers!
> Details at http:
>
> To unsubscribe, visit the List Server section of OSR Online at <
> http://www.osronline.com/page.cfm?name=ListServer&gt;
></http:>

Yes, you can execute concurrent transactions on the same enabler.

If you’re using packet-based DMA, then you need to opt-in to DMAv3 like I mentioned above. Otherwise, WDF will issue a verifier break if it detects concurrent transactions for the same device object - and note that having multiple enablers would not avoid this break, you need to opt-in to DMAv3.

Many thanks for your clarification!

2015-12-08 19:18 GMT+01:00 :

> Yes, you can execute concurrent transactions on the same enabler.
>
> If you’re using packet-based DMA, then you need to opt-in to DMAv3 like I
> mentioned above. Otherwise, WDF will issue a verifier break if it detects
> concurrent transactions for the same device object - and note that having
> multiple enablers would not avoid this break, you need to opt-in to DMAv3.
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list online at: <
> http://www.osronline.com/showlists.cfm?list=ntdev&gt;
>
> MONTHLY seminars on crash dump analysis, WDF, Windows internals and
> software drivers!
> Details at http:
>
> To unsubscribe, visit the List Server section of OSR Online at <
> http://www.osronline.com/page.cfm?name=ListServer&gt;
></http:>