What I would suggest is that in either your init state or outside the loop, create two separate tasks for the analog in and the analog out. This means using separate DAQmx Create Channel, DAQmx Timing, DAQmx Start Task, etc. Then, you would have the tasks in your shift registers and pass just the appropriate task to either a DAQmx Write or DAQmx Read. No need to pass channel or device. In the End state, you would add a DAQmx Clear Task for each.