Thursday, January 24, 2008

Vista File Virtualization
Software

As I've mentioned previously, Windows Vista has significantly improved user access control, so at long last you don't need to run as an Administrator all the time. Instead any operations that require administrative privileges prompt for a password before allowing them to run. This is nothing terribly special - Unix has been doing these for decades.buying grant home teacher

Of course its a little painful when you first install your computer as seemingly everything needs to be elevated, but once that's done it's much less of a problem.buying grant home teacher

Part of this user access control functionality is that the program files directory (generally C:\Program Files) can no longer be written to by applications (unless explicitly run as administrator). If an application tries to write to this location, it instead ends up writing to a location within the user's profile instead (something like C:\Users\Dave\AppData\VirtualStore\Program Files). This is supposed to be completely transparent to the program in question - it thinks it is writing to C:\Program Files, and can successfully reload the files again afterwards.buying grant home teacher

Up until yesterday this had worked fine for me with no problems whatsoever. I had run all our applications and catalogued all instances where they incorrectly try to write to the program files directory, to ensure that we fix them in the near future. All seemed well.buying grant home teacher

Then one of our applications suddenly stopped working on my machine (and just on my machine). It was failing with an error trying to load one of our DLLs, which was located in the application directory. Bizarre. The application directory is the FIRST place that Windows looks when loading DLLs.buying grant home teacher

So I thought, maybe that DLL is missing a dependency instead. I opened up Dependency Walker and tried to open the DLL. It couldn't find the file at all. In fact it thought that the entire application directory was empty. So I tried with OleView and got exactly the same result.buying grant home teacher

It turned out that file virtualization was busted. There was an empty directory in the virtual store program files with the same name as my application directory. When Dependency Walker, OleView, and my application were run, they seemed to see only this empty directory, instead of getting a merged view of both that directory, and the real program directory.buying grant home teacher

Consequently the application couldn't find its DLLs, and so failed to load miserably. Deleting the directory under the virtual store fixed the problem, and everything worked again. I tried creating the directory manually in the virtual store, and again things stopped working.buying grant home teacher

So it appears as either there is a bug in file virtualization so that it fails to merge the directories correctly in some cases, or alternatively there is a way to toggle how this works but I was unable to find it (and I searched for quite a while).buying grant home teacher

Ultimately I rolled back to a system restore point and things worked correctly again.buying grant home teacher

Anyone know how to report bugs to Microsoft these days? This is without getting charged for a support call of course?buying grant home teacher

Trackbacks

TrackBack URL for this entry:
http://www.cloudsofheaven.org/cgi-bin/mt-tb.cgi/292.buying grant home teacher

Comments

At 25 Jan 08 4:03 AM, Ross Nixon said...

Well, if it's hard to report, or you think they might ignore or lose it... just post it on SlashDot.com.buying grant home teacher

At 5 Feb 08 7:15 AM, Stefan Olson said...

https://connect.microsoft.com/ allows you to report Visual Studio bugs. Not sure about Windows.buying grant home teacher

With Office you get 2 free support calls.Maybe same for Windows.buying grant home teacher

...Stefanbuying grant home teacher


Post a comment