If you want state caching, then you should create an IVI driver. CVI has a tool to assist in creating an IVI driver. From the Tools menu, select 'Create IVI instrument driver'. I used this to make a switch driver and was able to create a driver in about a day (my first attempt). I needed to refer to some of the IVI specifications, which can be found at www.ivifoundation.org. Also, the 'IVI Driver Toolset Manual' and 'LabWindows/CVI Instrument Driver Developers Guide' from NI are important documents that you will need. If anyone has made a 'general' IVI driver (not one of the specified classes) or created their own class, I would like to hear more about that.