NI has recreated my problem using code that I sent in to them. As part of the debugging process, I put a semaphore around each Storage TDM VI call. (Anything that uses the storage.dll). This has cleared up the problem. The conclusion is that there is a problem with the storage.dll.
Even though calls to the storage vis are not reentrant, the calls themselves were not safe. Different vis would attempt to use the storage.dll at the same time. Sometimes this results in the Memory error.
Other times various TDM errors can occur. Sometimes a -2558 error will occur when opening a file that was recently closed by DIAdem.
-2570 was also received when attempting to close the file.
Note that all TDM IO calls must be coordinated. Any access to any file at the same time may result in an error or worse a CPP error.
Jim