Mark,
The simple answer is to create your own queue. I did this by simply putting an array in a shift register, and when updating or adding to it, I simply build the add to the array. When taking data out, I simply delete from the array. This is very simple for inserting and removing single data points, but becomes only slightly more complex when working with multiple points. Just remember two things: don't initialize the shift register; and make sure that the VI is NOT reentrant.
For the more complicated answer, I am not sure what you are trying to do with queues. I haven't worked with them very much. Looking at them I see that they rely on queues. I have to assume then that using queues is similar to using a mutex in C (not that I even know what that is
.) As far as I can tell, you have to obtain a key to the queue in order to pass the data. They seem to be independent, so I would have to assume that in order to implement them that a VI has to create one, and then other VIs can use that queue, such as VIs called dynamically by the main VI.
Depending on your application, I would avoid using queues. They seem to be more complex than you need. The first thing to remember about programming, and usually the first thing to be forgotten, is the KISS principle: Keep it Simple Stupid.
Give that a shot. Let us know what you come up with.
Good luck