Where Oh Where is my I386 Directory?

Windows has always asked for the Windows installation CD whenever you add a Windows component. In the past, I’ve just copied the Windows CD to a share and just connect to it via UNC whenever I need it. With Windows Vista, however, that’s all changed! Windows Vista places all the files it needs on the hard drive.

You might be wondering, however, where exactly it does this. You wouldn’t find a I386 directory or copy of the CD anywhere. I used a copy of WinDirStat to track down where Vista was hiding the files. It appears to split the DVD into two parts: applications (Windows components) and drivers. “C:windowswinsxs” contains the applications. For fun, I ran Process Monitor and added Windows games (in Windows Vista, this is known as “Turning on a feature” instead of “Installing a program”). Some of the calls made to the folders include:

C:Windowswinsxsx86_microsoft-windows-s..es-hearts.resources_31bf3856ad364e35_6.0.6000.16386_en-us_8adcf7faf63cfb99

C:Windowswinsxsx86_microsoft-windows-s..oxgames-purbleplace_31bf3856ad364e35_6.0.6000.16386_none_03f4bc7f0186d3be

C:Windowswinsxsx86_microsoft-windows-s..inboxgames-shanghai_31bf3856ad364e35_6.0.6000.16386_none_be6d39b9f23eed53

Gone are the days of simple folder names!

Drivers are kept in “C:windowssystem32driverstorefilerepository”. Each driver now has a component.man (component manifest) file written in XML format that describes file versions and destinations. There also appears to be PnP device information in some man files. Is this the replacement for INF files going forward?

Some other changes you might want to be aware of: “C:documents and settingsyourusernamelocal settings” has been replaced by “C:usersyourusernameAppdataLocal”. You might have also noticed a “LocalLow” folder at the same level and might have wondered what it was. Well, it relates to the Integrity Levels (IL) in Windows Vista. In a nutshell: any process that cannot be trusted is run with Low Integrity access. The only place a Low IL process can write is “C:usersyournamelocallow”. This MSDN article explains the theory behind ILs. Treat anything in LocalLow with care, especially when copying profiles around. The Roaming directory is obviously related to roaming profiles, but the name is much clear now. “C:documents and settingsyourusernamelocal settingsapplication data” would relate to data that was machine specific, so it was not included in the roaming user profile. However, “C:documents and settingsyourusernameapplication data” was considered user specific and would roam with the user profile. Confused? Good, that’s why they changed it! “C:documents and settingsall users” has been replaced by “C:userspublic”.

– Soli Deo Gloria

Support for MS-DOS Based Programs Fading in Windows Vista

Support for MS-DOS based programs is fading at Microsoft. Windows Vista does not natively support full-screen DOS mode for MS-DOS based programs. Attempts to execute ALT-ENTER in DOS programs will result in a message: “This system does not support fullscreen mode”. Several people have noted a workaround is to fall back to Windows XP drivers instead of the built-in Windows Vista ones (Vista Starter Edition apparently doesn’t use WDDM drivers due to its lack of Aero support and therefore does not have problems runing DOS programs full-screen).

It also appears that expanded memory (EMS) support is also gone, although this post from Matthew Braun from Microsoft states you can get it back by doing the following:

You can change these settings by running explorer as Administrator or you can also change it from Safe Mode. To run explorer as Administrator, open up a new elevated command window by right clicking cmd.exe -> Run as administrator, then open Task Manager and End Process on explorer, then from the elevated command prompt type explorer.exe (DO NOT EXIT TASK MANGER). Explorer is now running elevated, navigate to C:WINDOWSSystem32command.com and right click -> properties, proceed to change the setting in the memory tab. After you are completed to return explorer to a standard user process context goto task manager and end the explorer process, then goto File->New Task(Run…) and type explorer.exe, explorer is now running in a standard user process.

The other option of course is to run your legacy OS in VPC 2007 under Windows Vista.

– Soli Deo Gloria