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.
STATUSMicrosoft 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.
Modification Type: | Minor | Last Reviewed: | 9/7/2006 |
---|
Keywords: | kbHotfixServer kbQFE kbbug kbfix kbWin2000PreSP2Fix KB271148 |
---|
|