Please explain VirtualStore for non-experts


Apologies if this is not the right topic area.  I am not sure where my question should go.

In trying to install a program called ArsClip, this message appears:

ArsClip requires the ability to read and write files in the same location as the executable.  This version of Windows will redirect file outpub in this location to the VirtualStore.  

To install in another location other than "Program Files," pres the BACK button now.

From scanning lengthy technical threads, I gather that:
  • It is not good programming practice to store the read and write files in the same location as the executable.  
  • MS created the VirtualStore to prevent that from happening.
  • Some people hate the VirtualStore for reasons I don't understand.  Others think it fills an important need.
The threads suggest several strategies for dealing with the VirtualStore.  However, they are so technical that they are no help.  I need clear, non-technical information about what to do:  
  • Should I use the default that redirects the files to the VirtualStore?
  • Or should I redirect them somewhere else?  
  • If so, where and how?  
  • What should be considered in making this decision?
It appears impossible to find information about the VirtualStore that is geared to a broader audience than technical experts.  I would be very grateful if someone could answer my questions in understandable English.

Thank you.

Question Info

Last updated July 18, 2018 Views 4,971 Applies to:

There is a fairly understandable description of this here .

To summarise, the hidden VirtualStore folder is part of the virtualization technology that was introduced in Windows Vista. This was intended as a compatibility feature to allow old programs to continue working when using User Account Control and running as a Standard User. It is surprising that you are encountering problems seven years later. This was a temporary fix intended to be removed in some later release of Windows.

For a program to be eligible for virtualization, it must be 32bit, not running with administrator rights and must not have been compiled with a manifest file indicating it is for Vista or later.

You can see the virtualization status of a program by adding the Virtualization column to the Processes page in Task Manager.

When a virtualized program attempts to write to a protected location such as Program Files, Windows will intercept the access denied response and redirect the write to C:\Users\<name>\AppData\Local\VirtualStore, which is a hidden folder.

When a virtualized program attempts to read from a protected location, Windows will first check for a copy of the file in VirtualStore. If it finds it, it will use that copy. Otherwise it will attempt to read from the original file.

This normally works fine if you always use the program and the files it creates from a Standard User account. You can see that if you are trying to use the files from other programs which are not virtualized or sometimes you run with Administrator rights, you will be reading and writing different locations and seeing inconsistent results. For example, you write a file to Program Files as a Standard User, it gets redirected to VirtualStore. You later run a program with Administrator rights and try to read this file. Since you are not virtualized, Windows will read directly from Program Files and not find the file there.

Going back to ArsClip, I would interpret the message you are getting as an indication not to install it in Program Files. Create a folder to which you have full read and write access and install it there. I presume that when you press the BACK button you are given the option to specify an alternative install location.          

This answer is provided “as-is.” You bear the risk of using it.

26 people were helped by this reply


Did this solve your problem?

Sorry this didn't help.