Wednesday, January 30, 2008
View XPS Files in Vista
XPS (XML Paper Specification) files are a bit like PDF files, except not as popular or well supported, even in Microsoft's latest and greatest OS Vista for x64.
I was just forced to create an XPS file as a "print out" of a web page (because I hadn't had a chance to install a PDF print driver yet). That was easy enough, but viewing XPS seemed far harder than it needed to be. By default the viewer for .xps files is your default web browser, but that doesn't work if your default web browser is not Internet Explorer.
Even if I started IE by hand and tried to open the file I had a problem ("An error occurred in the application you were using").
The solution is to install the XPS Essentials Pack (nb: there is a special installer for 64-bit Windows), then right click the .xps file, chose "Open with ...", then "Choose default program ..." then "XPS Viewer EP".
Sunday, January 27, 2008
Enable AHCI Mode after Installing Windows Vista
Advanced Host Controller Interface (AHCI) mode is a BIOS option in my computer for the SATA hard disk controller. It lets the OS use Native Command Queuing (NCQ/aka SATA mode) to reorder disk read or write requests to make the reading and writing more efficient, particularly if the disk is very busy.
My BIOS has options IDE, RAID, or AHCI mode. RAID includes all of the ACHI features and Intel recommend that you choose the RAID before you install an OS because changing it afterward can be painful (or "unsupported" if you have an Intel motherboard!).
The process in Vista seems to be less painful than in Windows XP because VISTA includes AHCI drivers by default. However, if AHCI mode was not enabled at the time you installed Vista then the new drivers will not be loaded, and if you change the BIOS setting then Windows doesn't boot.
Simple solution:
- Start with IDE mode selected in the BIOS, and boot Windows Vista.
- Exit all Windows-based programs.
- Click Start, type regedit in the Start Search box, and then press ENTER.
- If you receive the User Account Control dialog box, click Continue.
- Locate and then click the following registry subkey: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci
- In the right pane, right-click Start in the Name column, and then click Modify.
- In the Value data box, type 0, and then click OK.
- On the File menu, click Exit to close Registry Editor.
- Reboot, and change to AHCI mode in the BIOS. Windows will detect some changed hardware (anything connected to a SATA port).
- For good measure I downloaded and (re)installed the chipset drivers for my motherboard. My motherboard uses an Intel G33 chipset and I wasn't sure if I needed to install the Intel Matrix Storage Manager, but when I tried it told me that I already had a more recent version of the software installed. I guess part of the chipset driver package overlaps with the Storage Manager software.
This process worked fine for me - I have AHCI mode enabled. Choosing RAID mode in the BIOS (which provides a superset of the AHCI features) still stops Windows from booting, but I'm not worried about that!
Finally, I'm not sure if it is to do with the change to AHCI or not, but I've had intermittent trouble shutting down the PC - Vista seems to hang on the "Shutting down" screen and the hard disk light keeps flashing. According to my event log the machine reboots itself after 20 minutes of that, but there were no other clues in the event log. (Someone with a related problem? http://episteme.arstechnica.com/eve/forums/a/tpc/f/77909774/m/433004204831) [Update 2008/12/31: I haven't noticed this problem for a long time now, so it must have been fixed with SP1 or driver upgrades.]
Saturday, January 12, 2008
Windows Vista x64 - What For?
- Why? (I've already decided I want some consumer version of Microsoft Windows on this computer!) Like installing any version of Vista (rather than XP or Windows Server), the reasons are mainly "worthy" items that include
-
- Even better security, although this includes the limitation of only allowing signed drivers to be installed, which might become painful.
- Much more memory can be used by both the whole computer and by individual applications - up to 128GB is supported by Windows Vista Ultimate x64, although 8GB is currently a common motherboard restriction. I would like to be able to put a lot of memory in my computer so that I can run several Virtual Machines at the same time. 32 bit PC have a practical useful limit of 3GB (not 4GB) because some of the memory address space can't be used by RAM. Typically almost 1GB of memory addresses (but not actual memory) are reserved for hardware that might not even be installed!
- Probably the most decisive reason for me is that 64 bit computing is new and shiney.
- Reasons why that are not very good:
-
- Speed: Although some specialized applications that have been compiled specially for Vista x64 can run a lot faster than an equivalent 32 bit version of the application, in general I will be running 32 bit applications on the 64 bit OS so there may be a small performance penalty. And anyway the machine is quite fast enough for my uses already.
- Reasons not to install a 64 bit version of Windows:
-
- No DOS or 16-bit application support. That includes 16 bit installers!
- Difficulty getting drivers for some hardware or video codecs (actually, I think this might be a myth - all my hardware has been supported, 32-bit video codecs run fine, and even the AnyDVD driver works without issue).
Finally, here are a list of random x64 facts:
- x64 is a synonym for AMD64, Intel 64, EM64T, EMT64, x86-64 and x86_64.
- Older 32 bit applications install by default to the "Program Files x86" folder. Programs compiled specially for a 64 bit version of Windows install to "Program Files".
- A 32 bit application can only load other 32 bit libraries, and a 64 bit applications can only load other 64 bit libraries.
- Windows Vista x64 provides 32 bit and 64 bit versions of most libraries and applications when it is installed, so for example there is a version of Windows Media Player in Program Files and in Program Files x86.
- Because Media Player often relies on third party extensions provided as libraries, and those third parties may not have made a (reliable) 64 bit version of their library available, the default version of Windows Media Player is the 32 bit version.
- If the 64 bit version is used (perhaps accidentally) the error messages can be very unhelpful. I don't know any reason why it would be helpful to use a 64 bit player application, but I suppose the app is needed in case a decoder library is supplied only as a 64 bit dll.
- The FFDShow codec will allow Media Player to play lots of common video or sound format, and is currently experimentally available as a 64 bit install, and can be installed side by side with the 32 bit version. However, I still can't play mp4 files because Haali Media Splitter is not available compiled as a 64 bit version.
