To address a few questions posted in this thread:
Correlated digital I/O is the only hardware-timed mode supported by the physical M Series hardware; no dedicated timing engine for digital I/O operations exists. So, this is not a shortcoming of the NI-DAQmx Base driver as the same situation is true even for NI-DAQmx.
Finite correlated digital output operations are not supported under NI-DAQmx Base. The only valid choice for correlated digital I/O is DAQmx_Val_ContSamps. This has nothing to do with the "retransmit mode." That mode, also commonly called regeneration mode is the default mode of operation and the only one possible with NI-DAQmx Base.
I am curious about your use of DAQmxBaseWriteDigitalU32(). Are you writing an array of data using that function or a single point at a time within a loop of some sort. The sampsPerChanWritten return value doesn't indicate the number of samples physically clocked out by the card, but rather the number of samples buffered with that particular call to DAQmxBaseWriteDitgitalU32(). Given this info, is it possible that the value is being returned properly? If not, please post back with a portion of your code that replicates what you're seeing and I will be happy to look into it.
Thanks a lot-