Windows Vista VirtualStore Problem

By Xah Lee. Date: . Last updated: .

This page discusses a file aliasing mechanism in Windows Vista called “File and Registry Virtualization”, the problem it may cause, and solutions.

Summary

When you edit a file in C:/Program Files/ and if you do not have admin privilege, Vista will actually create a new file of your modification at

%HOMEPATH%\AppData\Local\VirtualStore\

instead. This is ok for some program, but some other program won't recognize the VirtualStore copy.

To solve this problem, make sure that you have admin rights when you want to edit some config file in C:/Program Files/. You can do this by right click your text editor and choose “Run as administrator”.

registry virtualization 20210612022303
https://docs.microsoft.com/en-us/windows/win32/sysinfo/registry-virtualization

Detail

In 2009-09, i'm installing a new version of ErgoEmacs, which me and David Capello is developing. The new version didn't work for me, because, apparently some previous version of elisp files are still in my program installation dir at C:/Program Files (x86)/ErgoEmacs. After de-installing and installing several times, still the same problem. I was quite frustrated. After hours of looking into the problem, apparently the problem isn't the new release, but just on my machine. It seems there's some file caching going on, but just couldn't figure out what. At one point, i suspected that my file system is corrupted. This whole incidence has caused me some 20 hours. (See this discussion at ergoemacs forum: http://groups.google.com/group/ergoemacs/msg/4fd4d50d1a1bb863)

Today, David wrote to me pointing out that the problem could be Vista's file virtualization. Bingo, that was it. Here's what it means.

In Vista, dir path such as C:\Program Files (x86)\ is not supposed to be accessible for normal users. But many old programs still write to that dir for user data. So, when the program tries to do that, and OS detects that the user has no privilege, it will write to C:\Users\‹your account name›\AppData\Local\VirtualStore\Program Files (x86)\ instead. This means, some application that view directories will get confused.

The masking of files also is the source of a mysterious problem i have when trying to work with IntelliTypo software. I tried to edit a config file at C:\Program Files\Microsoft IntelliType Pro\, but intended effect won't show. It costed me some 10 hours over several days. [see Microsoft IntelliType Hacks]

The file virtualization happens to registry too. References:

In Windows 7, ErgoEmacs will recognize the files in the VirtualStore location.

Microsoft Windows File Alias, Juncture