Using single DMA transfer in windows 10 RRS feed

  • Question

  • Hi Driver Developers,

    I am trying to use the single DMA transfer mode in WDF but encountered an error on initialize the DMA. When the WdfDmaTransactionInitializeUsingRequest()  was called it returned the STATUS_WDF_BUSY (0xC0200204). Anyone has any idea why?

    My driver has created the DMA transaction with the setting WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER in the dma config enabler structure.

    FYI, my driver is running in Windows 10 OS. One thing is that if the driver does not enable single transfer then it run OK.

    Thanks in advance for any help coming. 

    Wednesday, April 25, 2018 6:36 PM

All replies

  • What version of Windows 10?  SINGLE_TRANSFER was only introduced in the 1607 release of Windows 10.  It requires KMDF 1.19, and it requires you to set WdfDmaVersionOverride to 3 when you create the DMA Enabler.  Are you doing all of that?

    I don't really see the point of that flag in the first place (which is why we lived without it for 13 years).  If your device does 64-bit DMA, then you'll always get a single transfer.  If your device is limited to 32-bit DMA, then you have to use a common buffer.

    Tim Roberts, Driver MVP Providenza & Boekelheide, Inc.

    Thursday, April 26, 2018 6:38 PM