Ok, so before I delve into detail, I should give a background on what exactly I’m talking about first. Saturday night I was talking to Ryan Price about some issues that he was seeing with Windows Vista. The main issue that he was concerned with was a rather odd boot delay when Vista was starting up. It seemed that it would just hang between the logon screen and getting to a usable desktop. So I kept this in the back of my head, and today while I was looking for something completely unrelated, I came across what seems to be the culprit responsible for this issue.
I came across an entry in my event log that reported "luafv" successfully starting. It perked my curiosity and upon looking into it further I discovered that this was the LUA File Virtualization Driver which is responsible for virtualizing file and registry writes in Vista providing UAC is ENABLED. So of course I immediately wondered why this driver would be attempting to load when UAC was disabled on my system. Could this be what is causing the hang? Well there was only one way to test it. Re-enabling UAC seemed to yield a slightly faster bootup time which was good and so far supported my theory. But here is where things really got interesting. Disabling UAC and then subsequently disabling the luafv driver yielded and even quicker boot time than having UAC enabled. So the driver was hanging, hence causing the issue, but it is rather weird that the driver takes what seems to be so long to load even on a UAC enabled system. Below are some tests that Ryan ran as well as a test of my own to support these findings. Note that the best boot times were achieved with UAC AND the LUAFV driver DISABLED.
Ryan’s Desktop - Vista SP1 17042
UAC Disabled w/o Tweak - 1 min 50 sec.
UAC Enabled - 1 min 30 sec.
UAC Disabled w/ tweak - 1 min 12 sec.
System configuration: 2.4 Ghz Dual Core AMD Opteron 165 , 4 GB DDR500 , Geforce 8500GT, Windows Vista Ultimate x64 SP1 RC1
Laptop - Vista RTM
UAC Enabled: 2 minutes 25 sec.
UAC Disabled w/ tweak: 1 minute 45 sec.
System Configuration: 1.6 Ghz Pentium Dual Core, 1 GB DDR2 533 , Intel Mobile Graphics 950. Windows Vista Home Premium RTM
My Test - Vista SP1 17042
UAC Enabled: 1 minute 38 sec.
UAC Disabled w/ Tweak: 1 min 04 sec.
System Configuration: XPS M1710, 2 GHZ Core2 T7200, 2 GB DDR2, 7950GTX
So, as you can see this seems to be a real problem that has been stumbled upon, and is one of the largest complaints about Vista these days (slow bootup and unexplained delays). One other thing to note, this issue is persistent across Vista RTM and the current beta build of Vista SP1 (6001.17042).
How should Microsoft go about fixing it? Well my solution is easy, make it so that when UAC is disabled, so is the LUAFV driver since it is obviously not needed on a UAC enabled system, this will allow people to disable UAC and not see a bootup performance hit, when the reality is that it should be the other way around, as proven by our testing.
Last but certainly not least, I want to thank Ryan for his time in testing this. I wanted to be sure I had some concrete and verifiable results before I posted something about this. This combined with a few other tweaks should largely solve many of the user complaints about Vista. I will post these tweaks in detail once they have been fully tested and confirmed to not cause any adverse side affects to the system.