Oldi,
There are two separate issues here. One issue is whether to use regeneration and the other is whether to use only the onboard buffer (FIFO). It is possible to use regeneration with either a buffer in the driver or only with the onboard buffer.
From what I can tell, the default analog output configuration is to use regeneration unless you specify otherwise and to use only the onboard buffer unless you write more data than will fit in the onboard buffer. If you write more data than will fit in the onboard buffer, I think the driver will automatically use a buffer and transfer data from the driver buffer to the onboard buffer as needed.
As mentioned before, you can explicitly turn on regeneration as follows:
DAQmxSetWriteAttribute (taskHandle, DAQmx_Write_RegenMode, DAQmx_Val_AllowRegen);
You can explicitly specify to *only* use the onboard buffer as follows:
DAQmxSetChanAttribute (taskHandle, "", DAQmx_AO_UseOnlyOnBrdMem, TRUE);
You can query the size of the onboard memory as follows:
DAQmxGetBufferAttribute (taskHandle, DAQmx_Buf_Output_OnbrdBufSize, &bufferSize);
If you specify to only use the onboard buffer and you try to write more data than will fit in the onboard buffer, you will get an error.
I hope that helps.
-Jeff