One of the big concerns of anyone considering moving to Windows Vista is “How many of my applications will work on Windows Vista?” We have spent a lot of time trying to answer that very question for our company so I will share with you some of the common problem areas we found for applications to help give you an idea of what applications might have problems for you.
Disclaimer: Microsoft sets very high goals for themselves when it comes to application compatibility, so any issues we discuss here may be resolved by the time Windows Vista RTM’s. These experiences are based solely on our personal testing of Windows Vista 5270 and below.
Windows Resource Protection
Windows Resource Protection (WRP) is the new system file and registry protection scheme in Windows Vista. Unlike Windows XP which would allow writes to System32 to succeed and then replace the file back with one from dllcache, Windows Vista takes a harder line and now doesn’t even allow the file replacement. They are also protecting certain registry values with this new feature.
This one, for us, is probably our biggest application compatibility problem. You can hit this in a number of ways. The most common way we have seen applications hit this is when an application is trying to register help extension. Your app will end up with an error about a typelib and have some big long key ending with a GUID with SHELLEX in there. This particular bug may be addressed by Beta2 or RTM, but has been hit on a number of apps including those from Microsoft like Office.
The other way to run into WRP is to hit this when your app tries to replace a system file. Like we talked about before, Windows XP would allow this to succeed, but Windows Vista has a hard block. This one is less common and we have mostly seen this with internal repackaged applications, but it is still something to be aware of.
Windows Vista IP Stack Changes
If you aren’t aware of this already Windows Vista introduces a completely rewritten network stack that provides both IPv4 and IPv6 capabilities. This fundamental change to the stack presents an application compatibility problem for a number of products like Firewall, Network Scanning, Anti-Virus, and Virtualization apps.
For most testers this mean you will have to upgrade those products. Know where to locate Windows Vista versions of the products you use. For example Symantec recently publish a new version of SAV for Windows Vista.
For me the lack of a Windows Vista supported virtualization product is what is keeping me from running Windows Vista full time on my main desktop.
Typically virtual machine technology and network scanning aren’t things that the majority of your end users will be using; however if you’re a programmer, IT pro, or help desk type you should consider if this applies to you.
Version Checking
As simple as it sounds there are lots of applications out there that are unable to do proper version checking. Typically this is the result of hard coding an app to certain versions of the Operating System or Browser.
These usually result in a “Unsupported Platform” messages, tell you that you must have at least Windows 2000 or Internet Explorer 5, or just silently fails. This is something that you can only find by testing unfortunately.
TIP: The first thing you should try in this scenario is an OS version lie shim. To do this, right click on the executable or shortcut and select the compatibility tab and change the compatibility mode.
User Account Control
User Account Control introduces a number of technologies that can present an application compatibility issue. File and Registry virtualization is one that can bite a number of applications. This can cause lots of problem for applications that base their settings on files placed in locations that a standard user can’t write to. If you aren’t familiar with File and Registry Virtualization (often called VIRT), see this wonderful post by jerry.
The other one that you might hit when it comes to UAC is “Protected Admin”. When a user logs onto a machine on which he/she is a member of the local administrator group, and isn’t the built in administrator, their account has a restriction on the admin token. This means that to perform an operation that the process or operation must be elevated before an operation requiring administrator rights can be accomplished. For more information on Protected Admin and the split token see this post
Session 0 Isolation
What the heck is session 0 isolation? Session 0 isolation is new with Windows Vista and basically means that anything that is running as a system, like a service or device driver, can not interact / display UI to the logged on user. This means that the pop up messages from a service or other system process, like A/V products, will not display for the user and if your application depends on a response it will appear hung because you are waiting on a response from the user, but they don’t see an UI.
Many developers have taken for granted that session 0 is the interactive desktop (which was true in the past for Windows XP, but was never true with terminal services), now with Fast User Switching and Session 0 isolation you can no longer make that assumption and have to do the work to figure out where to display the UI.
HINT: use the terminal services API’s
Protected Mode Internet Explorer
Internet Explorer 7 on Windows Vista is going to be the most secure browsing experience you can get from Microsoft, but more secure can mean bad news for application compatibility.
Controls and applets that run from the browser will be unable to access very much on the computer: in fact about the only place they can access is the temporary internet files (TIF) folder.
So be sure to test your applications that are using the browser as a platform, especially if they have a need to interact with the desktop in some way.
Windows x64
If you are migrating to x64 versions of Windows in your transition to Vista you will have some additional things to worry about. Windows Vista will not have support for 16-bit applications and any drivers will need to be rewritten for the x64 platform. You will also need new version of any 32-bit application that has a shell extension (like Winzip)
Wrap it up
Ok, so that may seem like a lot of things to worry about, but the good news is that in our testing we had a very high success rate of getting our applications to run on Windows Vista without any modification what-so-ever. Hopefully you will have the same level of success.
Now, get out there and test…
Josh
http://windowsconnected.com
Posted
Jan 07 2006, 07:30 AM
by
Josh Phillips
Follow Me on Twitter
Did you enjoy this article? If yes, then subscribe to our

or