MaxMpxCt and MaxCmds limits in Windows 2000 (271148)



The information in this article applies to:

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

This article was previously published under Q271148

SYMPTOMS

Windows 2000-based clients that attempt multiple simultaneous long-term requests against a file server may receive error code 56 ("The network BIOS command limit has been reached") even if larger MaxCmds or MaxMpxCt values have been specified in the registry. One example of a long-term request is a client using the FindFirstChangeNotification call to monitor a server for changes.

CAUSE

The maximum number of concurrent outstanding network requests between a Server Message Block (SMB) client and server is determined when a session between the client and server is negotiated. The maximum value that a client supports should be determined by the LanmanWorkstation MaxCmds parameter. The maximum value a server supports is determined by the LanmanServer MaxMpxCt parameter. For a given client and server pair, the limit should be the lower of these two values.

Without the hotfix described in this article applied, the Windows 2000 redirector has a problem that causes the MaxCmds parameter to be ignored. Instead of using this parameter, the Windows 2000 redirector uses a default, hard-coded limit of 50. In addition, the maximum permitted MaxMpxCt value in Windows 2000 is 125. Therefore, Windows 2000-based clients cannot support more than 50 concurrent commands, whether the server is running Windows 2000 or an earlier operating system (such as Microsoft Windows NT). Also, Windows 2000-based servers cannot support more than 125 concurrent commands per client, whether the clients are running Windows 2000 or an earlier operating system (such as Windows NT). These limits are raised significantly by applying the hotfix that is described in this article.

These limits are lower than they are in Windows NT 4.0. One reason for lowering the limit is that clients that are running Microsoft Windows 95 or Microsoft Windows 98 cannot function correctly when larger values are negotiated.

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
   -------------------------------------------------------
   08/16/2000  03:03p  5.00.2195.2103  368,976  Mrxsmb.sys
   08/16/2000  03:03p  5.00.2195.2103  234,352  Srv.sys
   08/16/2000  03:04p  5.00.2195.2103   71,952  Srvsvc.dll
   08/16/2000  03:05p  5.00.2195.2103   97,552  Wkssvc.dll
				

This hotfix raises the upper limit for the MaxCmds parameter to 65,535, and the upper limit for the MaxMpxCt parameter to 65,535. The hotfix also includes a check to determine if clients are running Windows 95 or Windows 98. If the Windows 2000-based server detects a client that is running Windows 95 or Windows 98, it behaves as if the MaxMpxCt value is no larger than 125. Smaller values are still honored.

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 2.

MORE INFORMATION

Although this hotfix increases the upper limit on the number of concurrent commands that can be outstanding between a client and a server, take care not to set these values too high. The more outstanding connections that exist, the more memory resources will be used by the server. If you set the values too high, the server could run out of resources such as paged pool memory. This could result in various kinds of system problems. In particular, you should not increase the values substantially unless you know that there will be a limited number of clients connected to the server at any given time.

Note that you may also need to adjust other server parameters to maintain optimum performance. For example, you may also need to increase the MaxWorkItems value. This article does not make specific recommendations as to which values or settings will be optimal for your situation because of the number of variables that are involved.

For more information about MaxMpxCt and MaxCmds limits, click the following article numbers to view the articles in the Microsoft Knowledge Base:

221790 IIS runs out of work items and causes RPC failures when connecting to a remote UNC path

810886 "The network BIOS command limit has been reached" error message in Windows Server 2003, in Windows XP, and in Windows 2000 Server

843584 Your ASP or ASP.NET application may restart or you may lose the session object when more SMB requests exist than the Web server can process

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

249149 Installing Microsoft Windows 2000 and Windows 2000 Hotfixes


Modification Type:MinorLast Reviewed:9/7/2006
Keywords:kbHotfixServer kbQFE kbbug kbfix kbWin2000PreSP2Fix KB271148