Hi Peter,
The NI-DAQ Help Manual gives this description for the error:
"Your application was unable to retrieve data from the background acquisition buffer fast enough so the unretrieved data was overwritten with new data. To prevent this error, you might increase the size of the background acquisition buffer, increase the amount of data you read from it per call to the read function/VI, slow down your acquisition rate, or reduce the number of tasks your computer is performing."
This is all valid info because I believe that your acquisition rate is on the verge of being too fast for your buffer size and the number of data points you are reading into your application each time. Therefore, DMA, which is a faster transfer mechanism to get data from your c
ard to the PC memory is probably loading the PC memory with many samples until it catches up with the data acquisition card where as Interrupts will gradually transfer the data to the PC memory. This means DMA is bursting data to a PC memory buffer that is slightly too small while Interrupts are transferring at the same rate you are reading (unless you change your acquisition rate depending on the transfer protocol).
I think the only change you need is to increase the size of your buffer (PC memory). If that doesn't work, also increase the number of points you read from the buffer each time by your application program. There will be a balance between these two numbers that will allow smooth operation with DMA. Hope that helps.
Ron