Microsoft KB Archive/306850

From BetaArchive Wiki
Knowledge Base


Article ID: 306850

Article Last Modified on 4/2/2007



APPLIES TO

  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server



This article was previously published under Q306850

SYMPTOMS

When you start a program, the program may run very slowly if the following conditions are true:

  • You start a program that does not have a "Start in" property.
  • The network connection to the mapped network share that contains your home folder is very slow.

Additionally, when you log on to the computer, the logon process may be slower than expected if the following conditions are true:

  • The client computer must look for system (.dll) files in your home folder.
  • The network connection to the mapped network share that contains your home folder is very slow.


CAUSE

This problem may occur because a program that lacks the "Start in" property starts in the current working folder. The current working folder is typically the user's home folder. The search order for dynamic link libraries (DLLs) includes the current working folder first, and then the folders that are specified in the system path. This contributes to slow performance over high-latency connections such as a wide area network or virtual private network connections.

RESOLUTION

To resolve this problem, obtain the latest service pack for Windows 2000. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

260910 How to obtain the latest Windows 2000 service pack


The English version of this fix should have the following file attributes or later:

   Date         Time   Version        Size     File name
   --------------------------------------------------------
   06-Sep-2001  16:07  5.0.2195.4272  708,368  Kernel32.dll
                

If you are using Windows 2000 Service Pack 3 (SP3) or later, and you did not install the hotfix that is described in this article before you updated to SP3 or later, you must configure the registry manually to enable the preemptive path search:

  1. Start Registry Editor.
  2. Locate and then click the following registry key:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager

  3. On the Edit menu, point to New, and then click DWORD Value.
  4. Type SafeDllSearchMode in the Value name box, and then press ENTER.
  5. Double-click the new value that you created in step 4, set this value to 1, and then click OK.
  6. Quit Registry Editor.
  7. Restart Windows for the change to take effect.

Note Set this key only if you are experiencing the specific issue that is described in this article.

WORKAROUND

To work around this problem, change the "Start in" property of the program shortcut to be a folder on a local drive or on a computer that is accessible over a low-latency connection.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows 2000 Service Pack 3.

MORE INFORMATION

This hotfix adds the following registry value:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDllSearchMode


The registry value is set to 1. With a setting of 1, the system first searches the folders that are specified in the system path, and then searches the current working folder. With a setting of 0, the system first searches the current working folder, and then searches the folders that are specified in the system path.

The SearchPath() function searches for a specified file in a specified path. The function searches for a matching file in the following directories in the following sequence:

  • The directory from which the application loaded.
  • The current directory.
  • The system directory.


Note Use the GetSystemDirectory function to get the path of this directory.

  • The 16-bit system directory.


Note There is no function that retrieves the path of this directory, but it is searched.

  • The Windows directory.


Note Use the GetWindowsDirectory function to get the path of this directory.

  • The directories that are listed in the PATH environment variable. If you try to run a program by clicking Start and then clicking Run, Windows searches your home folder for the program before searching the path.

You can change this behavior by modifying the following registry key:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer Name: StartRunNoHOMEPATH


Set the Type parameter to REG_DWORD and set the Data parameter to 1.
For more informationabout this behavior, click the following article number to view the article in the Microsoft Knowledge Base:

264061 Home folder is searched first when you try to run a program


For more information about how to obtain a hotfix for Windows 2000 Datacenter Server, click the following article number to view the article in the Microsoft Knowledge Base:

265173 The Datacenter program and Windows 2000 Datacenter Server product


For more information about how to install multiple hotfixes with only one reboot, click the following article number to view the article in the Microsoft Knowledge Base:

296861 Use QChain.exe to install multiple hotfixes with one reboot


For more information about how to install Windows 2000 and Windows 2000 hotfixes at the same time, click the following article number to view the article in the Microsoft Knowledge Base:

249149 Installing Microsoft Windows 2000 and Windows 2000 hotfixes



Additional query words: kbShell links kbbillprodsweep SafeDllSearchMode, StartRunNoHOMEPATH, SafeProcessSearchMode KB905890

Keywords: kbhotfixserver kbqfe kbbug kbenv kbfix kbshell kbui kbwin2000presp3fix kbwin2000sp3fix KB306850