The IVI model for labWindows/CVI instrument drivers typically keeps a
state for the instrument under control to solve exactly this problem.
When you execute a get state method for the driver, you get all
parameters even though the instrument does not support query function.
This is the best way of supporting what you are describing. The
method you describe would require you to "replay" the entire
transaction to reach the same state instead of just the state.
Writing a driver with internal state is not trivial because you have
to model the instrument completely (in order to support the complete
state). You may choose to inplement only what your application
requires or if the instrument is one of the IVI supported classes, you
may want to look to IVI.