Regarding the serial functions accessing the hard disk...
In "normal" usage, the functions should not access the hard disk. But
what's "normal"?
First, let me explain how our existing VIs work. When you call a
serial function, we call "Open Serial Driver". If the port has already been
opened, this function just returns a device reference immediately. If the
port has not been opened, though, we load a file called "serpdrv", which is
kind of like a DLL, and call it to open the serial port. If the load of
"serpdrv" succeeds, but the open of the port fails, we unload "serpdrv".
So, this explains the behavior of accessing the disk a lot when LabVIEW
didn't have permission to open the serial port (because another program had
it). La
bVIEW's not smart enough to avoid the unload/reload in this case.
The same thing would happen if you used the Close Serial Port function to
close the serial port--we'll reload "serpdrv" the next time you open the
port.
There are other reasons why we'll reload "serpdrv" with each call. For
example, "Open Serial Driver" only caches a certain number of open sessions.
We had a user with a hundred or so serial ports, and the symptom was that
the first 20 or so worked quickly, and the others were slow. That's because
we reloaded "serpdrv" and went through the motions of reopening the serial
port when we didn't recognize that the port was already opened. It worked
correctly; it just did extra work. The cache size is easy to increase;
there's a For Loop in Open Serial Driver that controls it.
There might be something else going on, but I'd rule these out first.
In the future, we plan on dumping the "serpdrv" idea.
Brian