Call of Duty 4 meets folder virtualization on Vista

Call of Duty 4 is a great game – but just occasionally, it trashes all your progress which is held locally. The answer is to copy your progress somewhere safe.

On Windows XP you need to backup the players folder which contains progress for all user logins.

C:\Program Files (x86)\Activision\Call of Duty 4 – Modern Warfare\players\

However – in Windows Vista we stopped all that silliness. Program Files became a "bad place" for programs to write that sort of information. But… if we had just put up a "no can do" sign, lots of programs would not have worked on Vista. The answer we went for was folder virtualization.

End result – in Vista each user login gets there own virtual program files folder. Hence for Call of Duty 4 you need to backup:

C:\Users\"username"\AppData\Local\VirtualStore\Program Files (x86)\Activision\Call of Duty 4 – Modern Warfare\players\

In a little more detail:

Virtualization creates a “per user” copy and then redirects successive data operations. For example, assume that an application is running under a Limited User Account or under accounts that require User Account Control permissions.

When this application writes to a system location, such as to the %programfiles% folder, Windows Vista redirects write operations and read operations to a user-specific location in the user’s profile folder (%localappdata%\VirtualStore).
By default, this location is C:\Users\ User_name \AppData\Local\VirtualStore\Program Files\ Application_name.

Registry virtualization works similarly but applies to registry keys under the HKEY_LOCAL_MACHINE\SOFTWARE subtree. The keys and data under this subtree are redirected to the HKEY_CURRENT_USER\Software\Classes\VirtualStore subkey.