# $ K + Introduction
Microsoft Terminal Server Client Registry Usage
MSTSC contains three types of registry parameters.  Of these, General and Session 
parameters are the only “product-level” parameters – the Trace parameters are used for 
debugging only and available only in the debug build. All these registry parameters are 
only modified very carefully with knowledgeable development/support Engineers.
·	General parameters : These parameters are used for all sessions and there is no UI 
available to set these parameters. They are found in ..\Software\Microsoft\Terminal 
Server Client.

·	Session parameters : These parameters are found in 
..\Software\Microsoft\Terminal Server Client\<session>, where <session> is
 specified as the first command line parameter (<session> defaults to “Default” if 
there are no command  line parameters). Client Connection Manager uses 
<session> parameter to invoke MSTSC for single application remoting.

·	Trace parameters : These are used in a debug build to control trace output, and are found in ..\Software\Microsoft\Terminal Server Client\Trace.

MSTSC looks for registry entries under both HKLM and HKCU.  All registry entries,
 which are written by MSTSC, are written to HKCU.
When registry entries are missing or invalid, MSTSC uses appropriate default values.  In
 a debug build, invalid registry entries MSTSC will cause an assertion failure (missing 
registry entries do not).
Win16 notes 
·	On Win16, MSTSC stores its config information in MSTSC.INI file in the 
Windows directory..
In the .INI file, parameters are located in sections named as for the registry 
(e.g. [Default], [Trace]).  General parameters are located in the [ ] section.

General parameters 
Session parameters 
Trace parameters 

# $ K + Restore button
Restores all settings on the Shadow Bitmap page to the default settings.

# Percentage of bitmap cache used for small cache entries.  Default value is 10.

# Percentage of bitmap cache used for medium cache entries.  The default value is 20.

# Percentage of bitmap cache used for large cache entries.  The default value is 70.

# Size in KB of bitmap cache.  The default value is 1500.

# Size of cells in glyph cache 1.  Default value is 4.

# Size of cells in glyph cache 2.  Default value is 4.

# Size of cells in glyph cache 3.  Default value is 8.

# Size of cells in glyph cache 4.  Default value is 8.

# Size of cells in glyph cache 5  Default value is 16.

# Size of cells in glyph cache 6.  Default value is 32.

# Size of cells in glyph cache 7.  Default value is 64.

# Size of cells in glyph cache 8.  Default value is 128.

# Size of cells in glyph cache 9.  Default value is 256.

# Size of cells in glyph cache 10.  Default value is 512.

# Size of cells in text fragment cache.  The default value is 256.

# Enables full glyph support.  Default setting.

# Enables partial glyph support.  The default setting is full glyph support.

# Disables glyph support.  The default setting is full glyph support.

# Enables shadow bitmap.  Default setting.

# Disables shadow bitmap.  Shadow bitmap is enabled by defalut.

# Specifies that the terminal is dedicated.  The default setting is disabled.

# Specifies that the terminal is not dedicated.  Default setting.

# Number of orders to draw into the shadow bitmap before transferring the output ot the screen.  The default setting is 25.  The value for this setting must be between 0 and 65535.

# When checked, restores all of the settings to default upon exit of the application.

# $ K + General Parameters
DOS Font Name 	
Min Send Interval 	
Max Event Count 	
Normal Event Count 	
Keep Alive Interval 	
Allow Background Input 	
BitmapCacheSize 	
BitmapCache1Prop 	
BitmapCache2Prop 	
BitmapCache3Prop 	
Single Connection Timeout 	
Overall Connection Timeout 	
Shutdown Timeout 	
Keyboard Layout 	
Order Draw Threshold 	
GlyphSupportLevel 	
GlyphCacheCell1Size 	
GlyphCacheCell2Size 	
GlyphCacheCell3Size 	
GlyphCacheCell4Size 	
GlyphCacheCell5Size 	
GlyphCacheCell6Size 	
GlyphCacheCell7Size 	
GlyphCacheCell8Size 	
GlyphCacheCell9Size 	
GlyphCacheCell10Size 	
TextFragmentCellSize 	
Left 	
Right 	
Top 	
Bottom 	
Program Group 	
CLListViewStyle 	
All User 	
BrowseDnsDomain 	
Keyboard Layout Table 	
IME Mapping Table 	

# $ K + Session parameters
Desktop Size ID 	
Screen Mode ID 	
Color Depth 	
Full Address 	
Auto Connect 	
WinPosStr 	
Smooth Scrolling 	
Accelerator Passthrough Enabled 	
Transport Type 	
Dedicated Terminal 	
SAS Sequence 	
Hatch BitmapPDU Data 	
Hatch MemBlt Order Data 	
Label MemBlt Orders 	
Bitmap Cache Monitor 	
Expand 	
MRU0 .. MRU9 	
Hatch IndexPDU Data 	
Hatch SSB Data 	
Shadow Bitmap Enabled 	
Server Port 	
Compression 	
Disable CTRL+ALT+DEL 	
Enable Mouse 	
DoubleClick Detect 	
AutoLogon 	
MaximizeShell 	
Domain 	
UserName 	
Password 	
Alternate Shell 	
Shell Working Directory 	
Hotkey\Full Screen Hotkey 	
Hotkey\CtrlEsc 	
Hotkey\AltEsc 	
Hotkey\AltTab 	
Hotkey\AltShiftTab 	
Hotkey\AltSpace 	
 Hotkey\CtrlAltDelete 	

# $ K + Trace parameters
BeepOnError 	
BreakOnError 	
CORE 	
DataTruncSize 	
DebugOutput 	
FileName1 	
FileName2 	
FileOutput 	
FlushOnTrace 	
FuncNameLength 	
NETWORK 	
Prefixes 	
ProcessID 	
ProfileTrace 	
SECURITY 	
StackTracing 	
ThreadID 	
TimeStamp 	
TraceFileSize 	
TraceLevel 	
UI 	
UTILITIES 	

# $ K + DOS Font Name
Type:				String
Default:				“Terminal”
Configurable by user through UI?:	No

Meaning: 
Win16 only – name of font used in DOS boxes. This font will be kept permanently loaded by the client otherwise it can
be made unavailable by the OS.

# $ K + Min Send Interval
Type:				DWORD
Default:				100
Configurable by user through UI?:	No

Meaning: 
Time interval before sending queued mouse moves (milliseconds).

# $ K + Max Event Count
Type:				DWORD
Default:				100
Configurable by user through UI?:	No

Meaning: 
Maximum number of input events that can be sent in one InputPDU

# $ K + Normal Event Count
Type:				DWORD
Default:				10
Configurable by user through UI?:	No

Meaning: 
Maximum number of input events sent in an InputPDU when there is no back pressure from the network layer.

# $ K + Keep Alive Interval
Type:				DWORD
Default:				0
Configurable by user through UI?:	No

Meaning: 
Interval, in seconds, to send keep-alive pings to the server. Zero disables the keep-alive function.

# $ K + Allow Background Input
Type:				DWORD
Default:				0
Configurable by user through UI?:	No

Meaning: 
Set this to 1 to enable sending of input messages when the client does not have the focus. Intended for use in 
automated testing.

# $ K + BitmapCacheSize
Type:				DWORD
Default:				1500
Configurable by user through UI?:	No

Meaning: 
Size in KB of bitmap cache.

# $ K + BitmapCache1Prop
Type:				DWORD
Default:				10
Configurable by user through UI?:	No

Meaning: 
Percentage of bitmap cache used for small cache entries.

# $ K + BitmapCache2Prop
Type:				DWORD
Default:				20
Configurable by user through UI?:	No

Meaning: 
Percentage of bitmap cache used for medium cache entries.

# $ K + BitmapCache3Prop
Type:				DWORD
Default:				70
Configurable by user through UI?:	No

Meaning: 
Percentage of bitmap cache used for large cache entries.

# $ K + Single Connection Timeout
Type:				DWORD
Default:				15
Configurable by user through UI?:	No

Meaning: 
Timeout, in seconds, for a connection attempt to a single IP address. Other IP addresses obtained from DNS may be 
used if this timeout is hit.

# $ K + Overall Connection Timeout
Type:				DWORD
Default:				120
Configurable by user through UI?:	No

Meaning: 
Overall timeout, in seconds, for a connection attempt to a server.

# $ K + Shutdown Timeout
Type:				DWORD
Default:				10
Configurable by user through UI?:	No

Meaning: 
Timeout in seconds to wait for server to respond to a shutdown PDU.

# $ K + Keyboard Layout
Type:				String
Default:				0xffffffff
Configurable by user through UI?:	No

Meaning: 
Enables overriding of the keyboard layout

# $ K + Order Draw Threshold
Type:				DWORD
Default:				25
Configurable by user through UI?:	No

Meaning: 
Number of orders to draw into the shadow bitmap before transferring the output to the screen

# $ K + GlyphSupportLevel
Type:				DWORD
Default:				2
Configurable by user through UI?:	No

Meaning: 
0 - none
1 - partial
2 - full glyph support

# $ K + GlyphCacheCell1Size
Type:				DWORD
Default:				4
Configurable by user through UI?:	No

Meaning: 
Size of cells in glyph cache 1

# $ K + GlyphCacheCell2Size
Type:				DWORD
Default:				4
Configurable by user through UI?:	No

Meaning: 
Size of cells in glyph cache 2

# $ K + GlyphCacheCell3Size
Type:				DWORD
Default:				8
Configurable by user through UI?:	No

Meaning: 
Size of cells in glyph cache 3

# $ K + GlyphCacheCell4Size
Type:				DWORD
Default:				8
Configurable by user through UI?:	No

Meaning: 
Size of cells in glyph cache 4

# $ K + GlyphCacheCell5Size
Type:				DWORD
Default:				16
Configurable by user through UI?:	No

Meaning: 
Size of cells in glyph cache 5

# $ K + GlyphCacheCell6Size
Type:				DWORD
Default:				32
Configurable by user through UI?:	No

Meaning: 
Size of cells in glyph cache 6

# $ K + GlyphCacheCell7Size
Type:				DWORD
Default:				64
Configurable by user through UI?:	No

Meaning: 
Size of cells in glyph cache 7

# $ K + GlyphCacheCell8Size
Type:				DWORD
Default:				128
Configurable by user through UI?:	No

Meaning: 
Size of cells in glyph cache 8

# $ K + GlyphCacheCell9Size
Type:				DWORD
Default:				256
Configurable by user through UI?:	No

Meaning: 
Size of cells in glyph cache 9

# $ K + GlyphCacheCell10Size
Type:				DWORD
Default:				512
Configurable by user through UI?:	No

Meaning: 
Size of cells in glyph cache 10

# $ K + TextFragmentCellSize
Type:				DWORD
Default:				256
Configurable by user through UI?:	No

Meaning: 
Size of cells in fragment cache.

# $ K + Left
Type:				DWORD
Default:				50
Configurable by user through UI?:	Yes (in Client Connection Manager)

Meaning: 
Left co-ordinate of Client Connection Manager when it was closed.

# $ K + Right
Type:				DWORD
Default:				600
Configurable by user through UI?:	Yes (in Client Connection Manager)

Meaning: 
Right co-ordinate of Client Connection when it was closed.

# $ K + Top
Type:				DWORD
Default:				50
Configurable by user through UI?:	Yes (in Client Connection Manager)

Meaning: 
Top co-ordinate of Client Connection Manager when it was closed.

# $ K + Bottom
Type:				DWORD
Default:				350
Configurable by user through UI?:	Yes (in Client Connection Manager)

Meaning: 
Bottom co-ordinate of Client Connection Manager when it was closed.

# $ K + Program Group
Type:				String
Default:				Terminal server Client
Configurable by user through UI?:	Yes (using Terminal Server Client Setup)

Meaning: 
Name of the program manager group or start menu where the shortcuts are installed.

# $ K + CLListViewStyle
Type:				DWORD
Default:				0
Configurable by user through UI?:	Yes (in Client Connection Manager)

Meaning: 
Style of Client Connection Manager listview when it was closed.

# $ K + All User 
Type:				DWORD
Default:				1 Under Windows NT for an administrator.  0 otherwise.
Configurable by user through UI?:	Yes (using Terminal Server Client Setup)

Meaning: 
When Set to 1 MSTSC is installed for “all users”

# $ K + BrowseDnsDomain
Type:				String
Default:				“”
Configurable by user through UI?:	No

Meaning: 
Specify the dns name to browse for hydra servers in dns and display in the browse list box.

# $ K + Keyboard Layout Table
Type:				String
Default:				0xffffffff
Configurable by user through UI?:	No

Meaning: 
Alternative function of Win32 GetKeyboardLayoutName in the Win16 platform.

# $ K + IME Mapping Table
Type:				String
Default:				Msime97.ime
Configurable by user through UI?:	No

Meaning: 
Map to DLL based IME.
For ex.
Msime.exe = msime97.ime
This means, if client running msime.exe for default ime, then on the tshrclnt, using msime97.ime

# $ K + Desktop Size ID
Type:				DWORD
Default:				Local screen size
Configurable by user through UI?:	Yes

Meaning: 
Index indicating which of the following desktop sizes is chosen for the session:
0 - 640x480
1 - 800x600
2 - 1024x768
3 - 1280x1024
4 – 1600x1200

Other desktop sizes are not supported by v1.0 of MSTSC.

# $ K + Screen Mode ID
Type:				DWORD
Default:				1
Configurable by user through UI?:	Yes (implicit)

Meaning: 
1 - start in windowed mode
2 - start in full screen mode

# $ K + Color Depth
Type:				DWORD
Default:				1
Configurable by user through UI?:	Yes (implicit)

Meaning: 
1 - start in windowed mode
2 - start in full screen mode

# $ K + Full Address
Type:				String
Default:				“”
Configurable by user through UI?:	Yes
Meaning: 
Name of server to connect to.

# $ K + Auto Connect
Type:				DWORD
Default:				0
Configurable by user through UI?:	No
Meaning: 
Connect to configured host automatically when client is started.
0 - disabled
1 – enabled

# $ K + WinPosStr
Type:				String
Default:				“0,1,0,0,640,480”
Configurable by user through UI?:	Yes (implicit)
Meaning: 
Client window position and style (restored / maximized)

# $ K + Smooth Scrolling
Type:				DWORD
Default:				0
Configurable by user through UI?:	Yes
Meaning: 
0 - disabled
1 – enabled

# $ K + Accelerator Passthrough Enabled
Type:				DWORD
Default:				1
Configurable by user through UI?:	Yes
Meaning: 
0 - accelerators interpreted by MSTSC frame window
1- accelerators are remoted to the server

# $ K + Transport Type
Type:				DWORD
Default:				1
Configurable by user through UI?:	No
Meaning: 
1 - TCP/IP
Other transport types not supported by v1.0 client

# $ K + Dedicated Terminal
Type:				DWORD
Default:				Default is 1 for WinCE, 0 for other platforms.
Configurable by user through UI?:	No
Meaning: 
0 - not a dedicated terminal
1 - dedicated terminal

# $ K + SAS Sequence
Type:				DWORD
Default:				0xaa03
Configurable by user through UI?:	No
Meaning: 
0xaa01 – No SAS sequence
0xaa03 – Ctrl-Alt-Del

# $ K + Hatch BitmapPDU Data
Type:				DWORD
Default:				0
Configurable by user through UI?:	Yes (Debug)
Meaning: 
Debug only: hatch in red client drawing done using bitmap updates.

# $ K + Hatch MemBlt Order Data
Type:				DWORD
Default:				0
Configurable by user through UI?:	Yes (Debug)
Meaning: 
Debug only: hatch client drawing done using MEMBLT orders (in blue for MEMBLT orders, in green for MEM3BLT orders)

# $ K + Label MemBlt Orders
Type:				DWORD
Default:				0
Configurable by user through UI?:	Yes (Debug)
Meaning: 
Debug only: label MEMBLT orders with cache identifiers.

# $ K + Bitmap Cache Monitor
Type:				DWORD
Default:				0
Configurable by user through UI?:	Yes (Debug)
Meaning: 
Debug only:  Display bitmap cache usage monitor.

# $ K + Expand
Type:				DWORD
Default:				0 for Win16; 1 for other plaforms.
Configurable by user through UI?:	Yes
Meaning: 
Whether to expand server list by default.

# $ K + MRU0 .. MRU9
Type:				String
Default:				“”
Configurable by user through UI?:	Yes (Implicit)
Meaning: 
Default server addresses for the most-recently-used server list

# $ K + Hatch IndexPDU Data
Type:				DWORD
Default:				0
Configurable by user through UI?:	Yes (Debug)
Meaning: 
Hatch glyph output in yellow

# $ K + Hatch SSB Data
Type:				DWORD
Default:				0
Configurable by user through UI?:	Yes (Debug)
Meaning: 
Hatch SSB output in cyan

# $ K + Shadow Bitmap Enabled
Type:				DWORD
Default:				0
Configurable by user through UI?:	No
Meaning: 
Controls use of backup bitmap

# $ K + Server Port
Type:				DWORD
Default:				0xd3d
Configurable by user through UI?:	No
Meaning: 
Server port to which the client will connect.

# $ K + Compression
Type:				DWORD
Default:				0
Configurable by user through UI?:	Yes (via the 'slow link' checkbox)
Meaning: 
Controls use of data compression on the network.

# $ K + Disable CTRL+ALT+DEL
Type:				DWORD
Default:				1
Configurable by user through UI?:	No
Meaning: 
Set to 1, stops the server displaying the 'Press Ctrl+Alt+Del to logon' dialog.

# $ K + Enable Mouse
Type:				DWORD
Default:				1
Configurable by user through UI?:	No
Meaning: 
Flag to tell the server if we expect to be sending mouse messages.

# $ K + DoubleClick Detect
Type:				DWORD
Default:				0
Configurable by user through UI?:	No
Meaning: 
Flag for whether the client will identify double clicks for the server.

# $ K + AutoLogon
Type:				DWORD
Default:				0
Configurable by user through UI?:	Yes (in Client Connection Manager)
Meaning: 
Controls use of AutoLogon feature.

# $ K + MaximizeShell
Type:				DWORD
Default:				1
Configurable by user through UI?:	No
Meaning: 
Flag to indicate whether a single app session should be maximized.

# $ K + Domain
Type:				Binary Unicode representation
Default:				“”
Configurable by user through UI?:	Yes (in Client Connection Manager)
Meaning: 
Domain name to use for AutoLogon.

# $ K + UserName
Type:				Binary Unicode representation
Default:				“”
Configurable by user through UI?:	Yes (in Client Connection Manager)
Meaning: 
User name to use for AutoLogon.

# $ K + Password
Type:				Encrypted binary
Default:				“”
Configurable by user through UI?:	Yes (in Client Connection Manager)
Meaning: 
Password to use for AutoLogon.

# $ K + Alternate Shell
Type:				Binary
Default:				“”
Configurable by user through UI?:	Yes (in Client Connection Manager)
Meaning: 
Which application to start at logon (server defaults to explorer.exe).

# $ K + Shell Working Directory
Type:				Binary
Default:				“”
Configurable by user through UI?:	Yes (in Client Connection Manager)
Meaning: 
Working directory for the logon application.

# $ K + Hotkey\Full Screen Hotkey
Type:				DWORD
Default:				VK_F12 (0x7B) for Japanese NEC PC-98 machines; VK_CANCEL (3) for other machines
Configurable by user through UI?:	No
Meaning: 
VK code to add to Ctrl+Alt to determine hotkey for switching to full-screen mode.

# $ K + Hotkey\CtrlEsc
Type:				DWORD
Default:				VK_HOME (0x24)
Configurable by user through UI?:	No
Meaning: 
VK code to add to Alt to determine hotkey for emulating Ctrl+Esc.

# $ K + Hotkey\AltEsc
Type:				DWORD
Default:				VK_INSERT (0x2D)
Configurable by user through UI?:	No
Meaning: 
VK code to add to Alt to determine hotkey for emulating Alt+Esc.

# $ K + Hotkey\AltTab
Type:				DWORD
Default:				VK_PRIOR (0x21)
Configurable by user through UI?:	No
Meaning: 
VK code to add to Alt to determine hotkey for emulating Alt+Tab.

# $ K + Hotkey\AltShiftTab
Type:				DWORD
Default:				VK_NEXT (0x22)
Configurable by user through UI?:	No
Meaning: 
VK code to add to Alt to determine hotkey for emulating Alt+Shift+Tab.

# $ K + Hotkey\AltSpace
Type:				DWORD
Default:				VK_DELETE (0x2E)
Configurable by user through UI?:	No
Meaning: 
VK code to add to Alt to determine hotkey for emulating Alt+Space.

# $ K + Hotkey\CtrlAltDelete
Type:				DWORD
Default:				VK_F15 (0x7E) for Japanese NEC PC-98 machines; VK_END (0x23) for other machines
Configurable by user through UI?:	No
Meaning: 
VK code to add to Ctrl+Alt to determine hotkey for emulating Ctrl+Alt+del.

# $ K + BeepOnError
Type:				DWORD
Default:				1
Configurable by user through UI?:	
Meaning: 
Beep on TRC_ERR.

# $ K + BreakOnError
Type:				DWORD
Default:				0
Configurable by user through UI?:	
Meaning: 
0 - break into debugger on TRC_ERR
1 - do not break on TRC_ERR

# $ K + CORE
Type:				DWORD
Default:				1
Configurable by user through UI?:	
Meaning: 
Trace filter: Core components

# $ K + DataTruncSize
Type:				DWORD
Default:				64
Configurable by user through UI?:	
Meaning: 
Number of bytes of data written (for data tracing)

# $ K + DebugOutput
Type:				DWORD
Default:				1
Configurable by user through UI?:	
Meaning: 
Write trace output to debugger

# $ K + FileName1
Type:				String
Default:				“TRC1.TXT”
Configurable by user through UI?:	
Meaning: 
Trace file name

# $ K + FileName2
Type:				String
Default:				“TRC2.TXT”
Configurable by user through UI?:	
Meaning: 
Trace file name

# $ K + FileOutput
Type:				DWORD
Default:				1
Configurable by user through UI?:	
Meaning: 
Write trace output to file

# $ K + FlushOnTrace
Type:				DWORD
Default:				0
Configurable by user through UI?:	
Meaning: 
Flush trace to file on every trace

# $ K + FuncNameLength
Type:				DWORD
Default:				12
Configurable by user through UI?:	
Meaning: 
Length of function name field written to trace output

# $ K + NETWORK
Type:				DWORD
Default:				1
Configurable by user through UI?:	
Meaning: 
Trace filter: Network Layer components

# $ K + Prefixes
Type:				String
Default:				“”
Configurable by user through UI?:	
Meaning: 
Trace filter string

# $ K + ProcessID
Type:				DWORD
Default:				1
Configurable by user through UI?:	
Meaning: 
Write process ID to trace output

# $ K + ProfileTrace
Type:				DWORD
Default:				0
Configurable by user through UI?:	
Meaning: 
0 - profile tracing disabled
1 - profile tracing enabled

# $ K + SECURITY
Type:				DWORD
Default:				1
Configurable by user through UI?:	
Meaning: 
Trace filter: Security Layer components

# $ K + StackTracing
Type:				DWORD
Default:				0
Configurable by user through UI?:	
Meaning: 
0 - stack tracing disabled
1 - stack tracing enabled

# $ K + ThreadID
Type:				DWORD
Default:				1
Configurable by user through UI?:	
Meaning: 
Write thread ID to trace output

# $ K + TimeStamp
Type:				DWORD
Default:				1
Configurable by user through UI?:	
Meaning: 
Write time stamp to trace output

# $ K + TraceFileSize
Type:				DWORD
Default:				100000
Configurable by user through UI?:	
Meaning: 
Size of trace files (bytes)

# $ K + TraceLevel
Type:				DWORD
Default:				2
Configurable by user through UI?:	
Meaning: 
Trace Level:
0 - debug
1 - normal
2 - alert
3 - error
4 - assert
5 - none

# $ K + UI
Type:				DWORD
Default:				1
Configurable by user through UI?:	
Meaning: 
Trace filter: UI components

# $ K + UTILITIES
Type:				DWORD
Default:				1
Configurable by user through UI?:	
Meaning: 
Trace filter: Utility components

# $ K + Restore button
Restores all settings on Miscellaneous page to the default settings.

# $ K + Restore button
Restores all settings on Glyph Cache page to the default settings.