At HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ we find the
values for controlling the system. Some of these were covered in the
previous two Registry articles, "Control Sets" (eLetter Volume 3, Issue
9) and "Session Manager" (eLetter Volume 3 Issue 10). In this article
and the next two we will look at the rest of these variables.
A WORD OF CAUTION:
ANY EDITING OF THE REGISTRY CAN BE EXTREMELY DANGEROUS. IT SHOULD BE
APPROACHED WITH CAUTION AS IT CAN DISRUPT YOUR SYSTEM TO THE POINT WHERE
YOUR ONLY OPTION IS TO RE-INSTALL WINDOWS NT. Refer to the article
"Registry: Basics" (eLetter Volume 3 Issue 8) for information on safe
handling of the Registry.
Many of the \Control value entries are necessary for the system to
start, so you must be careful if you make any changes, and always make
sure you have backed up the Registry first. Most of these parameters
can be controlled through Control Panel; where that is possible, it is
the best way to make changes. Changes in this area almost always
require a reboot to take effect.
Note that some of these variables may not appear in your Registry; they
can be added if needed, but be sure you spell and capitalize them
correctly.
The Control Value Entries
CurrentUser, REG_SZ. This is for holding the username of you, the user
who is currently logged on.
RegistrySizeLimit, REG_DWORD, Default 8MB, 25% of PagedPoolSize
(PagedPoolSize is located at
\CurrentControlSet\Control\SessionManager\MemoryManagement). This is
the amount of memory that can be used for Registry data. It can range
from 4 MB up to 80 percent of PagedPoolSize. The value is entered as
the number of bytes, not the number of MB. If you increase
PagedPoolSize, this value will also increase. A value of 0xFFFFFFFF
sets RegistrySizeLimit to 80% of PagedPoolSize.
SystemStartOptions, REG_SZ. If the firmware passes system arguments to
the system, they are listed here. You will not need to change anything
here.
WaitToKillServiceTimeout, REG_SZ, Default 20,000 milliseconds (ms).
Sets how long the service control manager will wait for each service to
complete the shut-down request.
The Control Sub-Keys
There are more than thirty sub-keys under \Control. Some will not
appear in your Registry, but can be added if you need them. Some have
enough sub-keys of their own to fill a whole article. I am not covering
them alphabetically, so don't be concerned if I seem to skip a few;
there are several more articles coming.
\BootVerificationProgram:
ImagePath, REG_SZ or REG_EXPAND_SZ, Defaults to blank. This value
entry contains the path and filename of the program which the service
controller uses to verify the Last Known Good configuration.
If you change this from the default, you must also go to
HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows
NT\CurrentVersion\WinLogon and set the value entry ReportBootOK (REG_SZ)
to 0. These sub-keys should be left at the default unless you are quite
certain you know what you are doing. For one thing, you'll probably
have to write the program it calls.
\Class
You'll find a dozen or more sub-keys under \Class, each with a cryptic
name. Don't worry about them, because, like most \Control entries, you
should not modify them. These sub-keys define devices such as keyboard,
mouse, modem, etc., and are modified from Control Panel.
\ComputerName: This has two sub-keys, \ActiveComputerName and
\ComputerName (yes, the name is identical). The value entry
ComputerName, REG_SZ, will be in the first sub-key, and may be in the
second. This is the network name of the computer. You can change it in
Network\Identification in Control Panel.
\FileSystem: Contains four value entries:
NtfsDisable8dot3NameCreation, REG_DWORD, Default 0. Allows long file
names on NTFS partitions. If you set this value to 1, long file names
can not be used on your NTFS partitions. If Windows NT is taking a very
long time to process directories, it may be due to having a large number
of long file names. If so, setting this value to 1 may speed up the
directory processing. On the other hand, you will not be able to use
long file names, and you will not be able to use MS-DOS shortcuts that
have long file names.
NtfsDisableLastAccessUpdate, REG_DWORD, Default 0. Whenever Windows
NT accesses a file or folder, even if it's just to display the name in a
list of folder contents, the Last Accessed Date is updated. If you
normally deal with large numbers of files and folders, this could slow
you down. To disable this feature, set this value to 1.
Win31FileSystem, REG_DWORD, Default 0. Controls whether the FAT will
allow creation, enumeration, opening, or querying of long file names,
and whether extended time stamp information (CreationTime and
LastAccessTime) is stored and reported. This value defaults to 0; set it
to 1 (true) to revert to basic Win3x (and Windows NT 3.5) semantics.
Note: Changing this value does not change any disk structures. It
simply changes how the system behaves from now on. You must reboot the
system for a change to this value to take effect.
Win95TruncatedExtensions, REG_DWORD, Default 0. When set to 0, this
makes all file extensions look like 3-character extensions. Thus
Windows NT would consider all of these extensions to be the same: .LIS,
.LIST, .LISTS, .LISTED, .LISTING, and so on. Any action done on *.LIS
would be performed on all of these files. To disable this feature, set
this value to 1.
\Keyboard Layout:
KeyboardLayout, REG_SZ. This key contains the name of the .DLL file
which the system loads to map your keyboard. You will probably never
need to change this. It contains two sub-keys.
\DosKeybCodes: This contains a set of value entries, each of which
is an MS-DOS style layout name. The system uses it to convert Windows
NT layout names. Each value entry is the code. For example, US is
00000409. Note that these are text strings, so the value type is
REG_SZ.
\Substitutes: If a particular user prefers a keyboard layout which
is different from the default, the code for the layout is recorded here.
When that user logs in, the system loads the corresponding .DLL file.
As under \DosKeybCodes, each value entry is the code. The type is
REG_SZ, Default is blank.
\Keyboard Layouts: Under this key we have a sub-key for each layout
name, (as listed in \Keyboard Layout \DosKeybCodes). Each sub-key
contains two value entries:
LayoutFile, REG_SZ. Contains the name of the .DLL file.
LayoutText, REG_SZ. Contains the name of the keyboard layout.
Lance Jensen is one of our ace Tech Support
reps, and has great
experience with both Windows NT and Digital's OpenVMS operating systems.
He can be reached at dknt_support@executive.com.
Please feel free to
write to him with questions or comments about this article. @Macarlo, Inc. @Macarlo's Shareware & Web OS/2 Java Lobby Member
Java Site Accredited