Workstation Service Entries

You can modify the startup parameters for the Workstation service using the Registry Editor. Unless otherwise indicated, these value entries are found in the following Registry path:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\LanmanWorkstation\Parameters

The parameters that control network bindings for this service are described in "NetRules Subkey Entries," earlier in this chapter.

BufFilesDenyWrite REG_DWORD 0 or 1

Specifies whether the redirector should cache files that are opened with only FILE_SHARE_READ sharing access. Usually, if a file is opened with FILE_SHARE_READ specified, the file cannot be buffered because other processes may also be reading that file. This optimization allows the redirector to buffer such files. This optimization is safe because no process can write to the file.

Disable this parameter if it is necessary to preserve the strict semantics of the sharing modes specified.

Default: 1 (true)

BufNamedPipes REG_DWORD 0 or 1

Indicates whether the redirector should buffer character-mode named pipes.

Disable this parameter to guarantee that all pipe write operations are flushed to the server immediately and to disable read ahead on character-mode named pipes.

Default: 1 (true)

BufReadOnlyFiles REG_DWORD 0 or 1


...\CurrentControlSet\Services\LanmanWorkstation

Specifies whether the redirector should cache files that are read-only. Usually, if a read-only file is opened, the file cannot be buffered because other processes may also be reading that file. This optimization allows the redirector to buffer such files. This optimization is safe because no process can write to the file. However, another user can modify the file to enable writing to the file, causing loss of data.

Disable this parameter if it is necessary to preserve the strict semantics of the sharing modes specified.

Default: 1 (true)

CacheFileTimeout REG_DWORD Number of seconds

Specifies the maximum time that a file will be left in the cache after the application has closed the file.

Increase the value of this parameter if you are performing operations on the server that could cause files to be reopened more than 10 seconds after the application has closed them. For example, if you are performing a build over the network, you should increase this parameter's value.

Default: 10

CharWait REG_DWORD 0 to 65535 milliseconds

Specifies time to wait for an instance of a named pipe to become available when opening the pipe.

Increase this value if your pipe server application is typically very busy.

Default: 3600

CollectionTime REG_DWORD 0 to 65535000 milliseconds

Specifies the maximum time that write-behind data will remain in a character-mode pipe buffer.

Changing this value may cause a named pipe application's performance to improve (but it does not affect SQL Server applications).

Default: 250

DormantFileLimit REG_DWORD Number of files

Specifies the maximum number of files that should be left open on a share after the application has closed the file.

This parameter exists because the default configuration of LAN Manager servers only allow a total of 60 open files from remote clients and 50 from each client workstation. Because the Windows NT redirector may keep files open in the cache after an application has closed the file, this means that the redirector may overload a misconfigured LAN Manager server. To correct this problem, either reduce this value, or increase the values for the LAN Manager server's maxSessopens and maxOpens parameters.

Default: 45

IllegalDatagramResetTime REG_DWORD Number of seconds

Specifies the span of time during which the number of illegal datagram events is counted. Because Windows NT logs all illegal datagrams, it is possible for the event log to be filled with a proliferation of these in a short amount of time. This entry and the NumIllegalDatagramEvents entry work together to limit the number of illegal datagrams that are recorded in the log within a certain span of time.

Default: 60

KeepConn REG_DWORD 1 to 65535 seconds

Specifies the maximum amount of time that a connection can be left dormant. This parameter is the redirector equivalent of the Disc parameter in the Services\LanmanServer\Parameters subkey.

As a general rule, try increasing this value if your application closes and opens UNC files to a server less frequently than 10 minutes apart. This decreases the number of reconnections made to a server.

Default: 600

LockIncrement REG_DWORD Number of milliseconds

This parameter is not used for Win32 applications. However, if OS/2-based applications request that a lock operation waits forever, and if the lock cannot be immediately granted on a non-LAN Manager version 2.0 server, this parameter controls the rate at which the redirector ramps back the failed lock operations.

This parameter should not be changed unless you are running an OS/2-based application that requests lock operations that might fail.

Default: 10

LockMaximum REG_DWORD Number of milliseconds

Used to configure the lock backoff package. This parameter exists to prevent an errant application from "swamping" a server with nonblocking requests where there is no data available for the application.

Default: 500

LockQuota REG_DWORD Bytes of data

Specifies the maximum amount of data that is read for each file using this optimization if the UseLockReadUnlock parameter is enabled.

Increase this value if your application performs a significant number of lock-and-read style operations. (This means performing lock operations and immediately reading the contents of the locked data.) It is conceivable that you could cause the system to run out of paged pool, but only by increasing this value to a few megabytes and by using an application that locks millions-of-byte ranges.

Default: 4096 (bytes)

LogElectionPackets REG_DWORD 0 or 1

Specifies whether the Browser should generate events when election packets are received.

Default: 0 (false)

MailslotBuffers REG_DWORD Number of buffers

Specifies the maximum number of buffers available to process mailslot messages. If your application uses many mailslot operations, set this higher to avoid losing mailslot messages.

Default: 5

MaxCmds REG_DWORD 0 to 255

Specifies the maximum number of work buffers that the redirector reserves for performance reasons.

Increase this value to increase your network throughput. If your application performs more than 15 simultaneous operations, you might want to increase this value. Because this parameter actually controls the number of execution threads that can be simultaneously outstanding at any time, your network performance will not always be improved by increasing this parameter. Each additional execution threads takes about 1K of nonpaged pool if you actually load up the network. Resources will not be consumed, however, unless the user actually makes use of them.

Default: 15

MaxCollectionCount REG_DWORD 0 to 65535 bytes

Specifies the threshold for character-mode named pipes writes. If the write is smaller than this value, the write will be buffered. Adjusting this value may improve performance for a named-pipe application (but it will not affect SQL server applications).

Default: 16

NumIllegalDatagramEvents REG_DWORD Number of events

Specifies the maximum number of datagram events to be logged within the span of time specified by the IllegalDatagramResetTime parameter. Because Windows NT logs all illegal datagrams, the event log can be filled with a proliferation of these in a short time. This entry and the IllegalDatagramResetTime entry work together.

Default: 5

OtherDomains REG_SZ DomainNames

Specifies the Microsoft LAN Manager domains to be listed for browsing.

Default: (none)

PipeIncrement REG_DWORD Number of milliseconds

Controls the rate at which the redirector "backs off" on failing nonblocking pipe reads.

This parameter is used to prevent an errant application from swamping a server with nonblocking requests where there is no data available for the application. You can use the backoff statistics to tune this parameter to be more efficient for an application that uses nonblocking named pipes (except for SQL Server applications).

Default: 10

PipeMaximum REG_DWORD Number of milliseconds

Controls the maximum time at which the redirector "backs off" on failing nonblocking pipe reads.

This parameter exists to prevent an errant application from swamping a server with nonblocking requests where there is no data available for the application. You can use the backoff statistics to tune this parameter to be more efficient for an application that uses nonblocking named pipes (except for SQL Server applications).

Default: 500

ReadAheadThroughput REG_DWORD Kilobytes per second

Specifies the throughput required on a connection before the cache manager is told to enable read ahead.

Default: 0xffffffff

ServerAnnounceBuffers REG_DWORD Number

Specifies the maximum buffers used to process server announcements. If your network has many servers, you can increase this value to avoid losing server announcements.

This parameter is found under the LanmanWorkstation\Parameters\Static subkey.

Default: 20

SessTimeout REG_DWORD 10 to 65535 seconds

Specifies the maximum amount of time that the redirector allows an operation that is not long-term to be outstanding.

Default: 45

SizCharBuf REG_DWORD 64 to 4096 bytes

Specifies the maximum number of bytes that will be written into a character-mode pipe buffer. Adjusting this value may improve performance for a named-pipe application (but it will not affect SQL server applications).

Default: 512

Transports REG_MULTI_SZ List

Lists the transports that the redirector services and is found under the LanmanWorkstation\Linkage subkey. You should modify it by choosing the Network icon in Control Panel.

Default: None

Use512ByteMaxTransfer REG_DWORD 0 or 1

Specifies whether the redirector should only send a maximum of 512 bytes in a request to an MS-Net server regardless of the servers-negotiated buffer size. If this parameter is disabled, request transfers from the Windows NT redirector could cause the MS-Net server to crash.

Default: 0 (false)

UseLockReadUnlock REG_DWORD 0 or 1

Indicates whether the redirector uses the lock-and-read and write-and-unlock performance enhancements.

When this value is enabled, it generally provides a significant performance benefit. However, database applications that lock a range and don't allow data within that range to be read will suffer performance degradation unless this parameter is disabled.

Default: 1 (true)

UseOpportunisticLocking REG_DWORD 0 or 1

Indicates whether the redirector should use opportunistic-locking (oplock) performance enhancement. This parameter should be disabled only to isolate problems.

Default: 1 (true)

UseRawRead REG_DWORD 0 or 1

Enables the raw-read optimization. This provides a significant performance enhancement on a local area network

Default: 1 (true)

UseRawWrite REG_DWORD 0 or 1

Enables the raw-write optimization. On a LAN, this provides a significant performance enhancement.

Default: 1 (true)

UseUnlockBehind REG_DWORD 0 or 1

Indicates whether the redirector will complete an unlock operation before it has received confirmation from the server that the unlock operation has completed. Disable this parameter only to isolate problems or to guarantee that all unlock operations complete on the server before completing the application's unlock request.

Default: 1 (true)

UseWriteRawData REG_DWORD 0 or 1

Enables the raw-write-with-data optimization. This allows the redirector to send 4K of data with each write-raw operation. This provides a significant performance enhancement on a local area network.

Default: 1 (true)

UtilizeNtCaching REG_DWORD 0 or 1

Indicates whether the redirector uses the cache manager to cache the contents of files. Disable this parameter only to guarantee that all data is flushed to the server immediately after it is written by the application.

Default: 1 (true)