Microsoft KB Archive/102067

From BetaArchive Wiki
Knowledge Base


Article ID: 102067

Article Last Modified on 11/1/2006


  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows NT Workstation 3.1
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition

This article was previously published under Q102067

The function of the SESSTIMEOUT parameter has changed somewhat between Microsoft LAN Manager 2.x and Windows NT. In LAN Manager, SESSTIMEOUT is the maximum amount of time that the redirector waits for a server to respond to a Server Message Block (SMB). If SESSTIMEOUT expires, the session is disconnected. In Windows NT, SESSTIMEOUT is only part of the time-out equation.

Windows NT uses a dynamic SMB response timer algorithm. The time-out can be changed on a per-SMB basis. The redirector uses some intelligence to calculate a proper time-out. Using a new TDI API call, [TDIQueryConnectionInfo], the redirector can determine the bytes per second rate of the media. It also knows the size of the data being sent or received in the SMB. Using this information, it calculates how long the SMB response is expected to take. To this value, it adds SESSTIMEOUT, which defaults to 45 seconds.

   [(SMB size + the size of data being sent OR the expected data to be
   read) / bytes per second] + SESSTIMEOUT.

In Windows NT, SESSTIMEOUT can be thought of as a margin for error. If things go wrong or get delayed, the redirector waits an extra SESSTIMEOUT amount before giving up. In LAN Manager, it is the absolute maximum amount of time to wait.

Currently, there is no way to see the value of the SMB response timer at any one point in time.

SESSTIMEOUT can be set using REGEDT32. It is found under HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\SERVICES\ LANMANWORKSTATION\PARAMETERS\SESSTIMEOUT. It has a variable type of REG_DWORD. The value is stored in decimal seconds. The default is 45. Range 10 to 65535 seconds. SESSTIMEOUT is never automatically adjusted. If you manually adjust the value it will take effect immediately.

In addition, SESSTIMEOUT and the SMB Response timer are system-wide parameters. With LAN Manager, SESSTIMEOUT does not apply to TCP/IP. In Windows NT, it applies to all protocols including TCP/IP.

SESSTIMEOUT does not apply to certain types of SMBs. These mostly consist of Transaction commands, which have their own time-out variable in the SMB. SESSTIMEOUT mostly comes into effect on Read and Write operations.

Additional query words: prodnt tuning registry

Keywords: kbenv KB102067