09-15-2008 01:14 PM
We have an app that has been in development for several years. Parts were written using traditional NIDAQ (other parts use NIDAQmx) and operate several PXI devices. If the app crashes during development after attaching to the PXI devices, or if I abort without calling exit(), when I restart the app, I get the -10455 "No DMA channel is available" error message. The only way I have found to be able to restart the app without the error message is to reboot. Is there anything I can call within the app (before I attach the devices) or do before the app starts (within Windows) to clear the DMA channels and prevent the error.
A related question: Is this problem fixed in NIDAQmx?
09-16-2008 09:08 AM
Hi Charles,
The problem that you are seeing with there not being DMA channels available is likely a problem that is associated with your DAQ hardware instead of the drivers. In order to determine if this is the case, we need to know what the model numbers of your PXI DAQ devices are. It would also be helpful to know what version of the NI-DAQ driver you are using. There is an article in the knowledge base titled 'Correcting a DMA Conflict in NI-DAQ 7.0' that may be applicable to your situation. If you don't find it useful, please let me know and I will continue to look into the problem for you.
Best wishes,
Wallace F.
09-16-2008 10:06 AM - edited 09-16-2008 10:08 AM
Hi Charles,
If Traditional NI-DAQ is leaking the DMA channel reservations when your program crashes, resetting the device might help (I haven't tried it, though):
NI-DAQmx was designed to handle user program crashes more gracefully. When your program crashes, any NI-DAQmx tasks it is running will be aborted, causing all resources reserved by those tasks to be released. I would not expect to see the same problem with NI-DAQmx.