Kevin,
I will attempt to answer your questions below:
1.) A Task is a DAQmx concept which defines an acquisition or generation. This acquisition can be either finite (you know how long it will last before it begins), or continuous (the task will run forever unless you stop it).
Here is a brief introduction to some basic DAQmx concepts.
2.) This particular callback will execute as soon as the task completes. For a continuous task, this event will never occur. For a finite task, this event will fire as soon as the acquisition finishes.
3.) A finite task specifies a set number of samples to acquire (analog input) or generate (analog output).
4.) This function actually controlls the triggering of the task (when it starts). In this case, an analog edge will start the task. This task can be either finite, or continuous.
5.) A great example which uses the DoneEvent is called "MultVoltUpdates-IntClk-DoneEvent.c" and can be found in the C:\Program Files\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Events\Done\Mult Volt Updates-Int Clk-Done Event directory.
Please let me know if you have any more questions.
Hope this helps,
Ryan Verret
Product Marketing Engineer
Signal Generators
National Instruments