Errata

Managing the Windows NT Registry

Errata for Managing the Windows NT Registry

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Printed Page 26
3rd & 4th paragraphs

In the sentence "The new profile will be based on the contents of *that
machine's* HKU.DEFAULT key," the emphasis ("*that machine's*") is incorrect
if the domain has a default user profile stored in the NETLOGON share of the
DCs.

From page 13 of microsoft's thorough "profiles and policies" whitepaper:

"b) If a user logs on and does not have an existing local or
server-based profile and your implementation uses the Default
User folder on validating domain controllers, Windows NT will
check the NETLOGON share for the Default User profile before it
uses the local default profile."

Obviously, this makes the 4th paragraph of this page ("catbert has a roaming
profile") totally inaccurate. Here's my quick re-write of that paragraph
(angle brackets denote my changes):

"The first time he logs onto a domain machine, that machine will
attempt to fetch <the path of> Catbert's roaming profile <,
stored in the user profile location parameter in his account
information on the DCs.> If he's ever logged on to any other
machine, and if <the machine (not necessarily a DC) holding his
roaming profile> is available, the logon machine will make a
local copy of Catbert's profile under HKU <on the machine. If
it's not available, it will make a new profile based on the
domain-wide default user profile, which is stored in the
NETLOGON share of each DC (replication must be set up properly
for this to work). If there is no domain-wide default user
profile, the machine will make a > new profile based on that
machine's default and use it instead. On subsequent logons, NT
will compare the locally cached profile with the <stored
profile (not necessarily on a DC)>; if they're different,
Catbert gets to choose which profile he wants the machine to
honor. Any changes he makes to his profile on one machine will
be mirrored back <to the profile storage location once he logs
out>, and they'll appear on other machines when he logs into
them."

Anonymous   
Printed Page 185
The description at the top of the page for "lpcbName" is faulty.

The desciption now reads:

"Points to a DWORD containing the size of lpName; on return,
contains the length of lpName in bytes, including the NULL
termnator."

The length returned does NOT include the NULL terminator.

On the same page, the parameter type given for the cbName parameter of
RegEnumKey is incorrect. The parameter type is now listed as:

"LPDWORD."

The correct type is DWORD. The description is faulty.

The function does NOT return the actual length of the key name.
Additionally, this function is deprecated for Win32; it's provided for
Win 3.1 compatability only. The author makes no mention of this.

My reference is the Win32 Platform Software Developer's Kit supplied
with Microsoft Visual C++ 5.0.

Anonymous   
Printed Page 188
In several places on p188-189 an apostrophe was intended, but an

accented 'i' was used instead. The first one I noticed is in the "PVALENT"
entry under "Getting multiple values" at the bottom of p188.

Anonymous   
Printed Page 208

The comment at the end of the first line at the top of the page reads:

"longest value contents".

This is wrong, and any use of the variable dwNameLen in the remainder of the
program is also likely to be wrong. I have not tested this. The 11th argument
of the RegQueryInfoKey() function is the security descriptor, defined as
"LPDWORD lpcbSecurityDescriptor" on p182 of this book and as "LPDWORD
lpdwSecurityDesc" in the Windows NT Win32 API Superbible.

Anonymous   
Printed Page 208
The third-to-last line of code reads: "retVal = E_NOT_FOUND;"

Should read:

"retVal = ERROR_NOT_FOUND;"

Anonymous   
Printed Page 286

The string in line two of the fourth paragraph down now reads:

"HKLMSYSTEMCurrentControlSetCrashControlAutoReboot"

It should read:

"HKLMSYSTEMCurrentControlSetControlCrashControlAutoReboot"

The same change should be made in the sixth paragraph.

Anonymous   
Printed Page 287
In the fourth paragraph, the mentioned registry key is typed wrong

"HKLMSoftwareMicrosoftWindows NTCurrent VersionWinlogon"

The space between Current and Version has to be left out. It should read:

"HKLMSoftwareMicrosoftWindows NTCurrentVersionWinlogon"

Anonymous