Application migration for Windows 7 SP1 & Server 2008 R2 SP1

If you have a keen eye for dates then you may have noticed that Windows 7 SP1 and Server 2008 R2 SP1 are due for public launch on the 22nd February 2011. This update naturally throws up certain questions for enterprises in terms of application migration.

Sheldon Lachambre, head of engineering for application compatibility company App-DNA says that this is effectively a rollup of updates that have been provided on Windows Update over the past few months.

For Server 2008 R2, there are some additional features such as Dynamic Memory and RemoteFX, both of which are detailed in the Microsoft Virtualisation Team Blog.

So, just a few bug fixes and security roll-ups – or is there more?

Are there really no big changes in the Windows 7 SP1 & Server 2008 R2 SP1 releases?

“Well no,” says Lachambre. “According to our analysis there are areas that are that have changed, namely the file system, the registry and the shim database, however with the exception of the shim database these changes are generally inconsequential with regard to application compatibility.”

This may seem self-evident based on the announcement; however let’s explore these changes in more detail.

This table compares the count of registry keys and files, between Windows 7/Server 2008 R2 and Windows 7 SP1/Server 2008 R2 SP1, as derived from App-DNA’s AppTitude database, which contains snapshots of the respective operating systems.

Windows 7 & Server 2008 R2.png

The File System

A more detailed comparison between the snapshots reveals some interesting data. This is a very small sample of new files and folders that are on Windows 7 SP1 that were not present or have moved from the previous Windows 7 release.


The above data is broken in three classes as highlighted:

Red – Are items that have changed and are noise (“Definition Updates” and “WER” – Windows Error Reporting” for example)

Blue – Are trivial changes in this case adding some favourites

Green – Are drivers, some of which may be new or at least updated given the hash in the folder path

Using the same key we can see the picture is almost identical when we look at the Server 2008 R2 SP1 changes:


So overall, ignoring the trivial and the noise (we excluded things like Windows SxS Assembly registrations before export), the changes seem to be isolated to new or updated drivers.

However we did notice that the Shim and PCA (Program Compatibility Assistant) databases had changed in the WindowsFolderAppPatch folder.

What about the Registry?

The registry changes in SP1 are not really relevant because they mostly pertain to the fact that the updates are streamlined into the OS, so certain registry keys such as HKLMCOMPONENTSDerivedData are not on the new SP1 snapshots which explains the drop in registry keys on the two operating system updates.

In fact Windows Update can cause a lot of file system and registry noise, and our previous snapshots were updated to the latest patched level using Windows update.

So nothing to see here folks, let’s move on.

And finally the Shim Database… Why are we interested in the Shim database for application migrations?

Well, simply put AppTitude uses this data to assess whether applications will trigger any OS shims, soft blocks or hard blocks. This is an addition to the powerful heuristic analysis that AppTitude performs for platform application compatibility.

The fact that there are 703 additional shim entries means that there are additional fixes, and potentially some additional soft or hard blocks built into the SP1 operating system which means your applications may be affected by this update, and more so the more out of date your core build is.


The implications on application compatibility are quite direct, applications should function the same on a fully patched version of Windows 7 as they would on the new Windows 7 SP1 however if your test bed is out of date there is a small possibility of applications being affected by the updates to the shim database however I expect in most cases there should be an improvement in compatibility, unless an application is newly hard blocked on the OS.