Description of the "STATUS_INSUFF_SERVER_RESOURCES" Error Message

IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:
256986 Description of the Microsoft Windows Registry


This article describes the "STATUS_INSUFF_SERVER_RESOURCES" error message (error code 0X0000046A) that can appear in network traces or event logs. This error can occur if a Server Message Block (SMB) Transact command does not succeed because Srv.sys has no additional resources for satisfying the request. In most cases, this error can be resolved by increasing some LanmanServer parameters such as MaxFreeConnections, MinFreeConnections, or MaxWorkItems. In other cases (in particular, in some browsing issues where there are many segments), it may be useful to also increase the XactMemSize parameter.

More Information

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

Srv.sys allocates a shared memory section to temporarily hold the TRANSACTION structures and associated buffer data that will be passed (using the LPC port) to XACTSRV in resolving the Transact SMB requests that carry remoted down-level calls. Note that the size of this shared memory section is configurable by using the XactMemSize parameter. The "STATUS_INSUFF_SERVER_RESOURCES" error message is typically returned when the server cannot allocate memory from this shared memory section.

For example, this error message could occur if many Local Segment Master Browsers (LBS == BDC on each segment) try to collect the browsing list from the Domain Master Browser (DMB == PDC) at the same time.

The Local Master Browser obtains the browsing list from the DMB by using a function that is similar to the NetServerEnum function. By default, this function implies a "SMB Transact Remote API (remote api code = 68)" frame in which the Transact MaxDataBytes parameter is set to 0x1068=4200 bytes. If the size of the browsing list is larger than 4,200 bytes (this value seems to be related to sizreqbuf), a second "SMB Transact Remote API : 68" is sent by the SMB, but this time with MaxDataBytes=0xFFFF=65535 bytes. In some configurations, this second SMB Transact request can return "STATUS_INSUFF_SERVER_RESOURCES."

You can set the XactMemSize parameter in the registry to a maximum allocation of 16 Megs. To do so, perform the following steps:

  1. Open Regedit.
  2. Navigate to the following registry key:
  3. Add a REG_DWORD value with a name of "XactMemSize".
  4. Give it a Hex value of 1000000 (1 million = 16 meg).
  5. Restart the server.

ID articol: 307257 - Ultima examinare: 30 oct. 2006 - Revizie: 1