Sreeb,
I don't know the 6281 card specifically, but here's what I *think* is going on. (Comments/corrections from NI folks are welcome):
1. In your app when your use DAQmx Write to define your waveform, it is written to your PC's system RAM. This RAM space is treated as a circular buffer, so each time you write to it you start at the point where you previously left off.
2. Your 6281 card has 8k of on-board FIFO memory that it uses for the actual hardware DAC conversions. The DAQmx driver fills this 8k FIFO by copying data to it from PC RAM. The same PC RAM that you write to once in a while using DAQmx Write.
3. So what happens in the "onboard memory less than full" case? Each time a DAC conversion is performed, the onboard FIFO memory becomes "less than full", so the DAQmx driver will try to refill it more-or-less immediately. Since the FIFO is always defined for the next 8k samples beyond the last DAC conversion, any new output data you write with DAQmx Write can only be appended somewhere *after* those 8k samples.
So you write your data to RAM. DAQmx immediately starts copying it to its FIFO. But it copies it to a position that's still 8k samples in the future.
4. Now for the "onboard memory empty" case. Here the DAQmx driver will try to copy data from system RAM to board FIFO just barely in time for the DAC conversion. The onboard FIFO is always in an almost-empty state, so when you write with DAQmx Write, and the driver copies that data to the FIFO, it comes due for DAC conversion and output within just a few samples.
-Kevin P.
CAUTION! New LabVIEW adopters -- it's too late for me, but you *can* save yourself. The new subscription policy for LabVIEW puts NI's hand in your wallet for the rest of your working life. Are you sure you're *that* dedicated to LabVIEW? (Summary of my reasons in this post, part of a voluminous thread of mostly complaints starting here).