System and Startup Settings
Chapter 6 from Windows 2000 Registry, published by Prentice Hall.
The Registry has much to do with the successful startup of Windows 2000. Once Windows 2000 starts, there are a number of settings you can modify in the Registry to control how the core operating system works, as well as to customize the startup process. In addition, the Registry stores data that, although you might not be able to successfully and safely change it, would tell you much about how the startup works. This chapter will help you understand the startup and shutdown processes in Windows 2000, as well as some of the system settings.
On This Page
When Windows 2000 Boots
Configuring Startup Options
Configuring System Options
Checking the Registry Hive List
Configuring Shutdown Options
Configuring Windows 2000 for a Crash
Checking the Software That Runs at Startup
When Windows 2000 Boots
The Registry plays an important part in the Windows 2000 startup process. This chapter explains how to make changes in the Registry to customize the startup process. To help you understand that process, though, here is a review of what happens when you start your computer and run Windows 2000.
When you turn on your computer, the computer's BIOS (basic input/output system) performs a POST (power-on self-test). It also checks the memory loaded and the hardware installed on your machine.
If the computer starts without a serious error, the BIOS determines the location of the master boot record. The master boot record specifies the active partition on the computer. The BIOS then executes the boot sector on the active partition. For Windows 2000, the program on the boot sector that executes is Ntldr.exe.
Ntldr.exe switches the machines from a real mode into a flat 32-bit memory mode. Ntldr.exe next opens the Boot.ini file and presents to the user the list of operating systems that can be used to boot based on the options in the file. Assuming that the user selects Windows 2000, the hardware detection phase begins. This function is handled by two programs, Ntdetect.com and Ntoskrnl.exe. The following is the list of hardware components these programs look for:
After Windows 2000 has collected information about hardware, the system is interested in which hardware configuration it should use. If the workstation has multiple hardware profiles set up, the user is presented with a list of those profiles. The user can select from one of the hardware profiles or select the Last Known Good Configuration by pressing F8 and picking it from a list (the Last Known Good Configuration is the configuration that was used the last time Windows 2000 booted successfully). The hardware profile and the Last Known Good Configuration are known as ControlSets. A ControlSet contains a complete set of keys and entries needed by Windows 2000 to launch. Windows 2000 stores a number of ControlSets, each identified by a number (e.g. ControlSet001, ControlSet002, etc.). More about ControlSets later.
Note: Windows 2000 stores copies of failed configurations, as well, so don't assume each ControlSet you see in the Registry is a working configuration.
Now, with a configuration selection in hand, the HKEY_LOCAL_MACHINE \SYSTEM hive is populated. Refer to Chapter 6 for a review of what types of keys the HKEY_LOCAL_MACHINE \SYSTEM contains. The hive is populated from the data in the SYSTEM. file, which is located in the System32\Config folder in the main Windows 2000 folder.
Next, the boot loader checks the Registry to see which ControlSet it should load. Entries in the HKEY_LOCAL_MACHINE \SYSTEM \Select key (see Figure 6-1) indicate what configuration is stored in each ControlSet. There are four entries in the HKEY_LOCAL_MACHINE \SYSTEM \Select key. The value of each entry indicates what ControlSet stores the appropriate configuration:
As an example, let's assume the user chooses Last Known Good Configuration. The Registry checks the Select key and finds the LastKnownGood entry. If the Last Known Good Configuration entry in the Select key has a value of 3, then ControlSet003 stores the configuration that will be used to start Windows 2000 and the system loads it.
Next, the configuration selected by the user is copied to the CurrentControlSet. Windows 2000 also updates the Current entry in HKEY_LOCAL_MACHINE \SYSTEM \Select key with the number of the ControlSet used. Windows 2000 next loads the services listed in the CurrentControlSet. This marks the start of the kernel initialization phase. At this point in the startup process, the screen turns blue.
The first step in the kernel initialization is the population of the HKEY_LOCAL_MACHINE \HARDWARE key. This key is populated based on the data collected early in the startup process by Ntdetect.com and Ntoskrnl.exe. A snapshot of the configuration is taken at this point, as well. Here's how: Windows 2000 copies the configuration reflected in the ControlSet indicated by the Current entry in the HKEY_LOCAL_MACHINE \SYSTEM \Select key (remember, the Current entry was updated after the user selects a configuration) to the Clone key. This way, Windows 2000 always has a copy of a configuration.
At this point, drivers are loaded, more services are started, and Windows 2000 starts the logon process. When a user successfully logs on, the configuration stored in the Clone set is copied to the Last Known Good Configuration key. This marks the end of the early startup process. The system continues the startup process by applying settings in the Registry based on a successful startup and on the identity of the user who has logged on.
Configuring Startup Options
The settings in this section enable you to configure aspects of Windows 2000's startup and logon process.
Displaying a Note at Startup
You can configure your workstation to display a message that appears as soon as the user presses Ctrl+Alt+Delete. This message can display any kind of warning regarding the legal ramifications of accessing the workstation or the network without proper authorization. Actually, the message can say anything, such as "Have a Nice Day."
To enable this feature, you must set at least one Registry entry, the LegalNoticeText entry, to define the text of the message. In addition, you can specify the text that appears in the title bar of the message with the LegalNoticeCaption entry.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Entry: LegalNoticeCaption Entry: LegalNoticeText Data Type: REG_SZ
Disable Warnings on Startup
You can suppress any error messages that might otherwise appear at Windows 2000 startup. Add this entry and set the value to 1. Note that the system and application logs will still record details about any startup problem, even if you configure this entry. If you enable this feature, make it a practice to review data in the system and error logs via the Event Viewer.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon Entry: NoPopupsOnBoot Data Type: REG_SZ
Show Logon Options
The logon dialog box, which appears at startup and when the user presses Ctrl+Alt+Del, has a button labeled Options. When the user clicks the Options button, the domain dropdown list becomes active, and the option to logon via a dial-up connection appears. The Domain dropdown list gives the user the opportunity to select the domain to which to log on, while the dial-up option lets the user select a dial-up connection to use. You can disable the Options button if you do not want these features to be available. Set the value of this entry to 0.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Entry: ShowLogonOptions Data Type: REG_DWORD
On occasion, the Windows 2000 shell program crashes. Unless you change your shell program, this program is Explorer.exe. By setting this entry value to 1, Windows 2000 will automatically restart the shell application. The alternative to Windows 2000 not automatically restarting your shell application in event of a problem is that all of the items typically found on your Desktop—icons, Taskbar, My Computer, everything—disappear.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Entry: AutoRestartShell Data Type: REG_DWORD
When Windows 2000 starts, a number of programs launch in the protected system context. To see the applications that launch for the operating system, open the Registry and inspect this entry.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Entry: System Data Type: REG_SZ
Display Configure Your Server Wizard
You can modify a user profile to determine whether the "Windows 2000 Configure Your Server" dialog box appears at startup. To continue to display the wizard, leave the value of this as 1. To disable the display of the wizard at startup, change the value to 0. The user may at any time display the wizard by choosing Programs\Administrative Tools\Configure Your Server from the Start menu.
Root Key: HKEY_CURRENT_USER Key: \Software\Microsoft\Windows NT\CurrentVersion\Setup\Welcome Entry: srvwiz Data Type: REG_DWORD
Configuring Script Options
A number of options are available to automate the logon, logoff, and shutdown script processes. You can use the Registry to control how these scripts run, such as if the commands in the script appear to the user as the script runs.
Running Logon Scripts Asynchronously
If you are familiar with logon scripts, then you may have experience in dealing with the problems caused when the shell portion of Windows 2000 starts before the logon script completes. This is usually a function more of the design of the logon script than a specific problem with Windows 2000. You can use the Registry to be sure that Windows 2000 does not start the user interface portion of the operating system until the logon script completes. To set this behavior, change the value of this entry to 1.
Root Key: HKEY_CURRENT_USER Key: Software\Microsoft\Windows\CurrentVersion\Policies\System Entry: RunLogonScriptSync Data Type: REG_DWORD
Forcing Asynchronous Running of Startup Scripts
You can configure startup scripts to run just before a user logs on. If you use more than one startup script, it is possible that one script will not wait for another script to finish before it starts. You can configure the Registry so that startup scripts run one at a time. Set the value of this entry to 1 to force startup scripts to run asynchronously.
Root Key: HKEY_CURRENT_USER Key: Software\Microsoft\Windows\CurrentVersion\Policies\System Entry: RunStartupScriptSync Data Type: REG_DWORD
Displaying Startup Script Commands
If you want the commands issued in a startup script to appear on the screen as the script runs, set this value to 0. If you do not want the commands to appear, either do not add this entry to the System key or set its value to 1.
Root Key: HKEY_CURRENT_USER Key: Software\Microsoft\Windows\CurrentVersion\Policies\System Entry: HideStartupScripts Data Type: REG_DWORD
Displaying Shutdown Script Commands
If you do not want the commands issued in a shutdown script to appear on the screen, set the value of this entry to 1.
Root Key: HKEY_CURRENT_USER Key: Software\Microsoft\Windows\CurrentVersion\Policies\System Entry: HideShutdownScripts Data Type: REG_DWORD
Managing Drive Sharing at Startup
You can configure whether the floppy and/or CD-ROM drives on a workstation can be shared over the network. A separate entry in the Registry is reserved for both drive types. For each entry, two options are available: a value of 0 indicates that only the user with administrative rights on the domain can access the drive remotely; a value of 1 indicates that only the user logged on locally at the workstation may access the drive.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Entry: allocatedasd Entry: allocatecdroms Entry: allocatefloppydrives Data Type: REG_DWORD
Working with User Accounts
You can control certain aspects of how the user account is managed at system startup via the Registry. For example, you can specify that the user name for the last account logged onto the workstation not appear when the logon dialog box appears. As for another example, you can also control how early the prompt appears to remind users to change their passwords.
Don't Display the Last Logged On Username
When a user press Ctrl+Alt+Del to log on to Windows 2000, the logon dialog box appears. The logon dialog box automatically displays the username of the last account that was logged on to the machine. Some would view this as a security problem. This key can be used to disable the display of the name. Set the value of this entry to 1 to disable display of the last username logged on.
Root Key: HKEY_LOCAL_MACHINE Key: HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \Windows NT\CurrentVersion\Winlogon Entry: DontDisplayLastUserName Data Type: REG_SZ
Managing Cached Logons
Windows 2000 networking is configured so that a user can log on to the network from any workstation on the Active Directory. A problem arises, though, when the network is down for some reason, such as through the inaccessibility of a domain controller. Each Windows 2000 machine, professional, server, or domain controller, stores the last ten user accounts that were successfully used to log on to the network at that workstation. This way, if the network does fail, a user can still log on to some workstation. For security reasons, you may feel that ten is too large a number of logons to cache. You can fine-tune that value using this entry.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Entry: cachedlogonscount Data Type: REG_DWORD
Change Password Message
This entry allows you to specify how many days in advance a user receives a warning that he or she must change a password before actually being forced to.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Entry: passwordexpirywarning Data Type: REG_DWORD
Restricting Lock Workstation
You can prevent the user of a workstation from locking it using the Windows 2000 Lock Workstation button on the Windows Security dialog box. For security reasons, you may not want to set this option, but it is available nonetheless. Set this entry to 1 to disable the Lock Workstation button. This entry does not appear by default in the Registry; you must add it.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Entry: DisableLockWorkstation Data Type: REG_DWORD
Configuring System Options
When Windows 2000 boots, a number of system options can be configured, including the user interface used, which is known as the shell. In this section, you can read about the Registry settings you can manage to customize the system at startup.
Specifying an Alternate Shell
If you miss the familiar Program Manager interface from Windows 3.1, you can still use it in Windows 2000. To configure Windows 2000 to launch the Program Manager interface when Windows 2000 launches, you need to specify the shell program you want to run. Enter Program.exe for this key to launch Program Manager. What does Program Manager look like running on Windows 2000? Figure 6-2 provides you a look.
Note that if you start your computer with Program Manager and realize you have made a mistake, you need to change this Registry enter back to its original value. To restore the Explorer shell, the value of this entry should be Explorer.exe. To start the Registry editor from the Program Manger shell, choose File, Run from the Program Manager window. Enter Regedit.exe in the dialog box that appears, and then click OK.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Entry: Shell Data Type: REG_SZ
Configuring Processor Priority
The Registry stores the setting that determines if applications running in the foreground receive preferential treatment from Windows 2000 in terms of processor time. All applications and services running on any computer require the use of the processor. In Windows 2000, as a multitasking operating system, all applications and services receive the same general amount of attention. The Application Response setting allows you to specify that certain applications receive a bit more processor time compared to other applications. What is the alternative? Depending on what software is loaded on your computer, a number of programs may be running without your knowing or noticing. Without setting the Foreground option, these applications and services receive the same number of slices of processor time the application you are using on the Desktop, such as your browser, word processing program, whatever. Depending on the use of the computer running Windows 2000, you may want all applications to share equally in processor time.
Root Key: HKEY_LOCAL_MACHINE Key: SYSTEM\ControlSet001\Control\PriorityControl Entry: Win32PrioritySeparation Data Type: REG_DWORD
Disabling Last Access Time on Files
The NTFS file system records the last time a file was accessed. You can disable this feature via a setting in the Registry. Set the value of this entry to 1 to do so. You will need reboot your workstation to effect this change.
Root Key: HKEY_LOCAL_MACHINE Key: System\CurrentControlSet\Control\FileSystem Entry: NtfsDisableLastAccessUpdate Data Type: REG_DWORD
Configuring Troubleshooting Options
You can add verbose logging to a number of events trapped by Windows 2000. Verbose logging means that Windows 2000 presents more than the normal amount of information. The details logged are stored in the event logs, which are accessible via the Event Viewer. You can specify verbose logging individually for the three different types of events, or you can make one Registry change that specifies verbose logging for all. Table 6-1 shows the types of events that can be logged with extra detail. The table also shows the entry whose value should be set to 1 to enable verbose logging.
Root Key: HKEY_LOCAL_MACHINE Key: Software\Microsoft\Windows NT\CurrentVersion\Diagnostics Data Type: REG_DWORD
Table 6-1 Event Logging Keys
Verbose log all types of events
Verbose log group policy events only
Verbose log remote boot events
Verbose log group policy events for application installations
Creating Multiple Pagefiles
Windows 2000 uses both the memory installed on your computer and disk space to create what is called virtual memory. The disk space Windows 2000 claims for memory is known as a pagefile. The pagefile on Windows 2000 workstation is hidden, but you can see it by changing the option in Windows 2000 Explorer to see hidden files in any folder.
The limit on pagefile size is 4095 MB, and the user interface in Windows 2000 only allows you to create one pagefile on each volume. If you need more than one pagefile and you only have one drive available and just one volume on that drive, then you won't be able to create more than one pagefile for use on your workstation. Using the Registry, though, you can add support for multiple pagefiles on a single volume.
To do so, you must create a folder for each pagefile. Naturally, you won't be able to create the pagefile—this is Windows 2000's job—but you must create the folder where the pagefile will be stored. Next, you need to enter the locations, names, minimum size (in Kbytes), and maximum size (Kbytes), for each pagefile you want create. Each of these values is entered into the Registry key specified below. The data type of the key is REG_MULTI_SZ, so you'll enter the information about each of the pagefiles in one entry. Here is the format:
c:\foldername\pagefile.sys minimum_size maximum_size
c:\next folder name\pagefile.sys minimum_size maximum_size
c:\last folder name\pagefile.sys minimum_size maximum_size
Here is the detail on the Registry key you need to work with:
Root Key: HKEY_LOCAL_MACHINE Key: System\CurrentControlSet\Control\SessionManager\MemoryManagement Entry: Pagingfiles
Checking the Registry Hive List
As you read in Chapter 1, the Registry is stored in a number of files. The Registry editors that ship with Windows 2000, as well as those tools you can purchase or download for free from the Internet, are simply tools to view this data. The Registry stores the location of each of the files, known as hives. You can use the entries storing these location simply to look at the location of the hives, or you can change the entries in order to change the location. The following is the location in the Registry where the hive locations are listed:
HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Control \HiveList
Figure 6-3 shows the appearance of the hive listing in the Registry.
Configuring Shutdown Options
The settings in this section will help you configure and customize Windows 2000 when you issue the command to shut down the system.
Shutting the Computer off After Shutdown
Some users, the author included, think it's a nuisance to have to shut off the computer after telling Windows 2000 to shut down the computer. A Registry entry is available to change this default behavior. Use a value of 1 in the PowerdownAfterShutdown entry to automatically power down the computer after entering the choosing Shutdown from the Logon dialog box.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Entry: PowerdownAfterShutdown Data Type: REG_SZ
Disabling Shutdown Without Logon
This setting enables the user to shut down the server from the logon dialog box even if the user is not logged on. Set this value to 1 to enable this option.
Root Key: HKEY_LOCAL_MACHINE Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Entry: ShutdownWithoutLogon Data Type: REG_SZ
Setting the Default Logoff and Shutdown Choice
You can configure the default option implemented when the user selects logoff or shutdown. The following list shows the option and the value you would use. The list and values are the same for the two settings.
2 Shutdown and Restart
3 Shutdown and Power Off*
Root Key: HKEY_CURRENT_USER Key: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Shutdown Entry: LogoffSetting Entry: ShutdownSetting Data Type: REG_DWORD
Managing Problem Applications at Shutdown
It's probably impossible to find a user who has not experienced difficulty with an application he or she has installed into Windows 2000. Sometimes users do not know an application has halted until they issue the command to shut down Windows 2000. It's at that point that the operating system alerts the user that the operating system is having trouble with the application. The settings described in this section will help you manage halted applications when you shut down Windows 2000.
Checking for a Hung Application
When you issue the command to shutdown Windows 2000, the system contacts each running application with its own shutdown request. An application that is hung will not respond. Eventually, Windows 2000 will notify you that the application is not responding, and it will show you how much more time it will wait before attempting forcibly shut it down. The default value for this entry is 20.
Root Key: HKEY_CURRENT_USER Key: ControlPanel\Desktop Entry: WaitToKillAppTimeout Date Type: REG_SZ
Waiting for a Hung Application to Respond
You can configure the amount of time Windows 2000 waits for an unresponsive application to respond before Windows 2000 finally shuts it down. This setting is supplied in milliseconds. The default value is 5.
Root Key: HKEY_CURRENT_USER Key: ControlPanel\Desktop Entry: HungAppTimeout Date Type: REG_SZ
Automatically Ending Hung Applications
If you are impatient, you might not want to wait for Windows 2000 to activate a halted application when you issue the shutdown command. Set this value of this entry to 1 to force Windows 2000 to shut down as soon as you enter command without attempting to shut down normally a hung application.
Root Key: HKEY_CURRENT_USER Key: ControlPanel\Desktop Entry: AutoEndTasks Date Type: REG_SZ
Configuring Windows 2000 for a Crash
Almost all of the really usable configuration options for preparing for a Windows 2000 can be set in the Registry. Don't think that working with these options is a frivolous activity. Either your installation of Windows 2000 or that of someone you know or administer will crash. You should expect it and take few minutes to prepare for it. The traditional preparedness steps naturally involve backing up, storing the backups offsite, and other normal procedures. You won't learn how to back up here. Rather, I'll cover the options that control Windows 2000's behavior when it crashes.
Sending an Alert
You can configure Windows 2000 to send an alert to all members of the administrative group should the operating system crash. Set the value of the entry to 1 to send an administrative alert or set the value to 0 to disable.
Root Key: HKEY_LOCAL_MACHINE Key: SYSTEM\ControlSet001\Control\CrashControl Entry: SendAlert Data Type: REG_DWORD
Configuring the Memory Dump File
It's difficult to miss the instant when Windows 2000 crashes. The screen background turns blue and streams of Windows 2000 internal technical data appear. This data is generally very useful, especially to a technical support engineer who may be able to determine why Windows 2000 crashed by examining that data. By examining this crash data, it is possible to determine what modules were loaded in memory when Windows 200 crashed, what drivers were in use, the data at specific memory points, and more. The DumpFile setting allows you to redirect this data to an external file. This way, you can save the settings to examine at a later time, such as if the crash condition becomes malignant. With the data in file format, you can very easily share the data with an individual qualified to review it.
You can use two settings to save diagnostic data to an external file. The first one, CrashDumpEnabled, simply determines if the data will be saved to a file. Enter 1 to save the data externally; enter 0 not to. The second entry allows you to specify the name of the file that will store the crash data, as well as its location. The default location is %SystemRoot%\Memory.Dmp. The %SystemRoot% variable resolves to the main Windows 2000 directory. You might recall from Chapter 1 the point that the REG_EXPAND_SZ data type is used for Registry entries that contain variables that are resolved to the real value when the entry is used.
Root Key: HKEY_LOCAL_MACHINE Key: SYSTEM\ControlSet001\Control\CrashControl Entry: CrashDumpEnabled Data Type: REG_DWORD Entry: DumpFile Data Type: REG_EXPAND_SZ
When Windows 2000 crashes, the system freezes, and contents of memory, names of modules loaded, and so on is displayed on the screen against a blue background. This is commonly referred to as the blue screen of death. You can change this behavior so that Windows 2000 automatically reboots after a crash condition. The drawback to this option is that it might not be immediately obvious to you that the system crashed if you weren't working at it when the crash happened. Granted, you might wonder when you return to your workstation why the logon dialog appears to log back onto the system, but nothing is as familiar to an experienced Windows NT/2000 user, even from a good distance away, as the blue screen of death. If you use this option, be sure you enable the option to store the contents of the crash log to an external files. To enable this option, set the value of AutoReboot to 1.
Root Key: HKEY_LOCAL_MACHINE Key: SYSTEM\ControlSet001\Control\CrashControl Entry: AutoReboot Data Type: REG_DWORD
Checking the Software That Runs at Startup
Windows 2000 runs a number of applications and services at startup. Applications are those programs that you may have installed. Some services launch automatically at system startup, such as your virus protection, others when they're needed, others when you manually start them, and some run just once. The Registry keeps track of those applications that need to be run just one time and notes when an application has been run so it doesn't run again. The same rules are in place for services. Services are programs that provide system support for Windows 2000. Examples of Windows 2000 services include the Network browser, which makes it possible for the workstation to see other computers on the network, and the Task Scheduler. A handful of Registry entries control the applications and services that run at startup. It's useful to know where to find this list should you need to debug some problem at startup. The following list of keys show you where the run information is stored:
HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \Windows \CurrentVersion \Run HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \Windows \CurrentVersion \RunOnce HKEY_CURRENT_USER \Software \Microsoft \Windows \CurrentVersion \Run HKEY_CURRENT_USER \Software \Microsoft \Windows \CurrentVersion \Runonce
About the Author
Paul Sanna is a solutions consultant with more than 12 years of experience in the software industry. He has worked with every version of Windows NT and Windows 2000, including commercial releases, interim and beta builds, and service packs.
We at Microsoft Corporation hope that the information in this work is valuable to you. Your use of the information contained in this work, however, is at your sole risk. All information in this work is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by Microsoft Corporation. Microsoft Corporation shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages. All prices for products mentioned in this document are subject to change without notice.
International rights = English Only