Sure. I've been playing with it some more since the post, and I'm afraid that it's looking like it may be an internal driver issue.
At the moment, all the background task is doing is calling a viOpenDefaultRM, running through the list of station instruments to do some viGetAttribute calls on them, and then closing the instruments and the RM. We'll also be having it perform instrument resets and the like. nothing terribly onerous or complex.
Since this post, I've found that while I thought the problem was just with the VXI instruments, it is actually effecting our GPIB instruments as well... they just don't get a big yellow icon in MAX. When the background process has opened the instruments and closed them again, an attempt to get a handle to
them(by calling their respective VXI-PNP driver init functions) as another user(unless said user is Administrator) returns a 0xbfff0011 if it is a VXI instrument and a 0xbfff003e if it is a GPIB instrument. Since the code works fine when the background process is closed, or if both processes are acting as the same user, it really looks like a shared-resource permission problem to me.
Do you happen to know if the VISA/VXI/GPIB drivers make any calls to CreateMutex/CreateSemaphore/CreateEvent/etc.? We had to make sure that all of our calls to these functions specified a security descriptor with a NULL DACL(which is global access), instead of the NULL(Default)Security Descriptor(access to current user or administrator). I have made sure that the user-level account has full access to the National Instruments registry keys, and the directories on disk that store some config files, so it isn't any of those simple problems. Am I missing something?