NetSafe: Windows Configuration Checking and Fixing
NetSafe addresses the infamous data corruption problem that can sometimes occur on networked Windows computers. It checks the version of certain system files to ensure they are at or above the minimum required version, and sets certain registry entries that are known to affect the Windows data corruption problem. The exact files and registry entries checked are described below.
Windows 95 only
The file VREDIR.VXD is checked to ensure it is version 4.00.1116 (156,773 bytes, 9/11/97, 11:16) or higher. VNETSUP.VXD is checked to ensure it is version 4.00.1112 (17,595 bytes, 5/30/97, 11:12) or higher.
If either of these files is found to be below the minimum required version level, you will
be informed that the files are out of date and that you can download a patch program to
update them at http://support.microsoft.com/Download/support/mslfiles. The patch program
you need to download is VRDUPD.EXE.
The problems these updated files correct are described in Microsoft KnowledgeBase articles
Q148367 and Q174371. (Note that these articles incorrectly state the date stamp of
VREDIR.VXD must be 6/2/97 or higher, when in fact the correct date is 9/11/97.)
Windows 95 and 98
The following registry entries are checked to ensure that they are present and set to the correct values. If NetSafe corrects any registry entries, you will be informed that you must reboot the computer for the changes to take effect.
This setting ensures VREDIR is set up correctly:
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ VxD \ VREDIR \ DiscardCacheOnOpen must be set to 01.
This setting disables Windows caching:
HKey_Local_Machine \ System \ CurrentControlSet \ Control \ FileSystem \ DriveWriteBehind must be set to 0. (This corresponds to the "System Properties / Performance / File System / Troubleshooting / Disable write-behind caching for all drives" checkbox.)
Some sources state that the following registry entries also affect Windows caching.
HKey_Local_Machine \ System \ CurrentControlSet \ Control \ FileSystem \ SoftCompatMode must be set to 0. (This corresponds to the "System Properties / Performance / File System / Troubleshooting / Disable new file sharing and locking semantics" checkbox.)
HKey_Local_Machine \ System \ CurrentControlSet \ Control \ FileSystem \ AsyncFileCommit must be set to 1. (This corresponds to the "System Properties / Performance / File System / Troubleshooting / Disable synchronous buffer commits" checkbox.)
The following registry entries must be set correctly when running Novell networking. Setting them when Novell is not installed will cause no harm. (NetSafe sets these registry entries whether or not Novell networking is installed.)
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ VxD \ NWREDIR \ ReadCaching
must be set to 0.
HKey_Local_Machine \ Network \ Novell \ System Config \ Netware Dos Requester \ Cache
Writes must be set to No.
HKey_Local_Machine \ Network \ Novell \ System Config \ Netware Dos Requester \
Opportunistic Locking must be set to No.
Windows NT, 2000, XP, and 2003
The following registry entries are checked to ensure that they are present and set to the correct values. If NetSafe corrects any registry entries, you will be informed that you must reboot the computer for the changes to take effect.
The following registry entries disable opportunistic locking & caching:
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ LanmanServer \ Parameters \
EnableOpLocks must be set to 0.
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ LanmanServer \ Parameters \
CachedOpenLimit must be set to 0.
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ LanmanWorkStation \
Parameters \ UseOpportunisticLocking must be set to 0.
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ LanmanWorkStation \
Parameters \ UtilizeNtCaching must be set to 0.
This registry entry is checked only on Windows 2000 and above, and is needed to ensure that opportunistic locking is disabled on Windows 2000, XP, and 2003:
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ MRXSmb \ Parameters \ OpLocksDisabled must be set to 1.
The following registry ensures that NetWare popups are enabled to avoid a documented issue:
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ NWCWorkstation \ Parameters \ DisablePopup must be set to 0.
Important Notes!
These settings must be made on EVERY SINGLE Windows machine attached to the network. They must be made AFTER Novell Client 32 has been installed (or reinstalled). Running NetSafe more that once on the same computer will cause no harm, so NetSafe should be run every time after installing or reinstalling Novell Client 32.
Acknowledgments
This information and some of the code used in NetSafe was obtained from "Paradox File Corruption" by Brian Long in issue 42 (February 1999) of The Delphi Magazine.
Thanks also are due to Peter Gibney for referring me to Microsoft Knowledge Base article 296264, which documents the settings needed to disable opportunistic locking on Windows 2000 and above.
See the following sources for more information:
http://support.microsoft.com/support/kb/articles/q296/2/64.asp
http://support.microsoft.com/support/kb/articles/q174/3/71.asp
http://support.microsoft.com/support/kb/articles/q148/3/67.asp
http://support.microsoft.com/support/kb/articles/q129/2/02.asp
http://support.microsoft.com/support/kb/articles/q124/9/16.asp
http://support.microsoft.com/support/kb/articles/q126/0/26.asp
http://www.dataaccess.com/KBPrint.asp?ArticleID=178
http://www.dataaccess.com/KBPrint.asp?ArticleID=110
http://www.dataaccess.com/whitepapers/IntegratingDataFlexWithNetware.htm


