Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

Surface Registry Keys

The Microsoft Surface registry subkeys are grouped into two types: Profile-based registry subkeys and Global registry subkeys.

All Profile-based registry subkeys are located under the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Surface\v2.0\Profiles key. You can add subkeys for each account profile in this key: Developer (administrator), SurfaceStandard, and SurfaceDebug. When you add entries under these subkeys, they will only affect that account profile. For example, if you add an entry under the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Surface\v2.0\Profiles\SurfaceDebug subkey, it will only affect software behavior when the device is in Surface mode with troubleshooting enabled. Surface Shell customizes the experience by automatically changing the relevant registry subkeys to match the "mode" and the "account profile." For more information about modes and account profiles, see Windows Mode and Surface Mode and Account Profiles.

The Global registry subkeys are located in the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Surface\v2.0\Global key. The entries added to the subkeys placed in the Global key affect Surface software behavior independent of account profiles.

For each configuration setting, Surface Shell looks first in the Profile-based registry subkeys to check whether there are settings for the account profile that is currently in use. If Surface Shell does not find the setting it is looking for in the Profile-based registry settings, then it searches in the Global subkeys for configuration information. For example, if the SurfaceDebug account profile is currently logged into the system (by entering Surface mode with troubleshooting enabled), Surface Shell will first search for configuration information on each setting in the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Surface\v2.0\Profiles\SurfaceDebug subkey and use those configuration settings. If no settings are found, the system searches the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Surface\v2.0\Global subkeys. So in any particular Surface Shell session, some configuration settings may come from the Global registry subkeys and some may come from the Profiles subkeys.

The following sections describe the relevant Surface registry subkeys, grouped by their registry key. You can search this page for the subkey that you are interested in.

Global Registry Subkeys

The entries in subkeys located under the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Surface\v2.0\Global key affect Surface software behavior independent of which account profile is currently using the system. To customize these settings you may need to add some of the entries with Registry Editor.

To add entries under Global registry subkeys in Registry Editor

  1. In Windows mode, click Start, and type regedit to start Registry Editor.

  2. In the left pane of Registry Editor, click the subkey to which you want to add entries.

  3. With the subkey selected, right-click in the right pane, click New, and then click either String Value or DWORD (32-bit) Value depending on the value type of the entry you want to add.

Global Feedback Subkey

 

Entry Description Default value

CEIPReporting

(DWORD value)

The CEIPReporting entry determines whether the device made for Surface is opted in or opted out of the Microsoft Surface Customer Experience Improvement Program (SCEIP).

Valid values are 1 to opt in to SCEIP and 0 to opt out.

0

WEReporting

(DWORD value)

The WEReporting entry determines whether the device made for Surface is opted in or opted out of Windows Error Reporting.

Valid values are 1 to opt in to Windows Error Reporting and 0 to opt out.

0

Global InternationalSupport Subkey

 

Entry Description Default value

InputLanguageID

(DWORD value)

The InputLanguageID entry controls the Surface keyboard layout and key mapping. This entry must be one of the following values:

  • 0x409 (US English)

  • 0x20409 (US-International)

  • 0x809 (United Kingdom)

  • 0x452 (United Kingdom Extended)

  • 0x11009 (Canadian Multilingual Standard)

  • 0x40c (French)

  • 0x1009 (Canadian French)

  • 0x100c (Swiss French)

  • 0x80c (Belgian French)

  • 0x1080c (Belgian (Comma)

  • 0x407 (German)

  • 0x807 (Swiss German)

  • 0x40a (Spanish)

  • 0x80a (Latin American)

  • 0x410 (Italian)

  • 0x414 (Norwegian)

  • 0x406 (Danish)

  • 0x41d (Swedish)

  • 0x412 (Korean)

Best match for LocaleName

LocaleName

(String value)

The LocaleName entry changes how Surface displays numbers, currencies, dates, and time. You can specify any locale name that the .NET Framework supports.

For a full list of locale identifiers, see Locale Identifier Constants and Strings on the MSDN website.

The locale that you specified during the initial Windows 7 setup process on the device made for Surface.

UILanguageName

(String value)

The UILanguageName entry controls the interface display language for Surface. You can specify any locale name that the .NET Framework supports. Microsoft Surface 2.0 is localized into the following UI languages:

  • da-DK (Danish)

  • de-DE (German)

  • en-US (English)

  • es-ES (Spanish)

  • fr-FR (French)

  • it-IT (Italian)

  • ko-KR (Korean)

  • nb-NO (Norwegian (Bokmål)

  • nl-NL (Dutch)

  • sv-SE (Swedish)

noteNote
The preceding list includes the languages that Surface is localized into. If you set UILanguageName to a valid value that is not listed above, the Surface software determines which language to use for Surface Shell and the out-of-order screen by using .NET Framework rules. For example, if you specify fr-CA (which is not a supported Surface locale), Surface Shell and the out-of-order screen will use fr-FR. If the Surface software cannot determine a language to use, Surface Shell and the out-of-order screen use English (United States).

The system UI language. For more information, see the description of "System UI Language" in User Interface Language Management on the MSDN website.

Global Shell Subkey

 

Entry Description Default value

AppLauncherTitle

(String value)

The AppLauncherTitle entry specifies left-justified text that appears across the top of the application Launcher menu. You cannot change the font, font color, or the font size. Test the appearance of the text before you deploy a customized Launcher title.

No default value

BackgroundImage

(String value)

The BackgroundImage entry specifies a custom image in Surface Shell. The image is overlaid with the Attract application water effects when the device is in the Attract application.

Valid value is the full path of your customized background image.

Dark palette

For more information, see DefaultPalette

EnableObjectRouting

(DWORD value)

The EnableObjectRouting entry determines whether object routing is enabled for tags. Object routing is applicable only when there are installed applications that have registered for object routing in their XML registration file (which must include the appropriate <Tags></Tags> section).

Valid values for EnableObjectRouting are 0 and 1. 1 indicates that object routing is enabled; 0 indicates that it is disabled.

1

InitialOrientation

(String value)

InitialOrientation is the initial orientation (relative to the bottom of the Windows 7 display) of the application that runs in single-application mode. (String)

Valid values are "bottom" or "top".

bottom

OutOfOrderRestartDelay

(DWORD value)

The OutOfOrderRestartDelay entry determines how many minutes pass before the device made for Surface is restarted after the second and subsequent out-of-order events. The restart delay for the first out-of-order event in a 24-hour period is always 10 minutes and is not configurable.

Valid values range from 10 through 1440. (1440 equals 24 hours.)

60 minutes

OutOfOrderRestartQuota

(DWORD value)

The OutOfOrderRestartQuota entry determines how many times during a 24-hour period the device made for Surface restarts after an out-of-order event.

Valid values range from 0 through 10.

3

ServiceApplicationRestartDelay

(DWORD value)

For devices made for Surface that are running a service application, if that application crashes or exits with a non-zero exit code, Surface Shell waits for the ServiceApplicationRestartDelay period and then restarts the service application.

There is no limit to the number of times that the Surface software restarts a service application.

The Surface software does not restart services if they exit normally (with an exit code of zero), and it does not monitor if service applications stop responding.

10 seconds

SingleAppMode

(DWORD value)

(Required for single-application mode.) The SingleAppMode entry enables or disables single-application mode.

Valid values are 0 (disabled) or 1 (enabled).

0

Global SingleAppMode Subkey

(You can specify these values in the …\Global\Shell subkey or this subkey.)

 

Entry Description Default value

SingleAppApplication

(String value)

(Required for single-application mode.) The SingleAppApplication entry specifies the name of the application that runs in single-application mode.

Valid value is the application name as it is specified in the shortcut to the ApplicationName.XML file, which is placed in the %ProgramData%\Microsoft\Surface\v2.0\Programs folder. For more information about this shortcut, see Registering a Surface Application with Surface Shell.

No default value

SingleAppRestartPeriod

(DWORD value)

(Optional) The SingleAppRestartPeriod entry specifies the time period, in seconds, used to track an application restart for an application that is running in single-application mode. For example, if the SingleAppRestartPeriod is set to 600 (10 minutes), the application will restart a maximum of two times every 10 minutes. If the application attempts to restart itself more than two times during the restart period, the device made for Surface will enter the out-of-order state. You can increase the number of times an application can restart within the application restart period by modifying the SingleAppRestartQuota registry entry.

Valid values range from 1 through MAX_DWORD (in seconds).

600

SingleAppRestartQuota

(DWORD value)

(Optional) The SingleAppRestartQuota entry specifies the number of times that the single-application mode application is restarted if it crashes or stops responding during the restart period. If the quota is exceeded, the device made for Surface enters the out-of-order state.

Valid values range from 0 through MAX_DWORD. If this entry is 0, the application is never restarted. If this entry is MAX_DWORD, the application is always restarted.

2 (Surface Shell restarts the application two times.)

Global UI Subkey

 

Entry Description Default value

DefaultPalette

(String value)

The DefaultPalette entry specifies the color scheme of the Attract application palette. For more information about the Attract application, see The Attract Application.

The palette color scheme enhances screen legibility in different environments. High contrast color schemes provide maximum visibility for users with low vision. "Light" and "Light High Contrast" work well in brightly lit environments. "Dark" and "Dark High Contrast" work well in dimly lit environments.

Valid values are Light, LightHighContrast, Dark, and DarkHighContrast.

Dark

TiltHorizontalThreshold

(DWORD value)

The TiltHorizontalThreshold entry specifies the number of degrees away from the horizontal plane that a device made for Surface can be tilted and still be detected by Surface Shell as horizontal.

0

TiltVerticalThreshold

(DWORD value)

The TiltVerticalThreshold entry specifies the number of degrees away from the vertical plane that a device made for Surface can be tilted and still be detected by Surface Shell as vertical.

90

Global UnknownUIExemptProcesses Subkey

 

Entry Description Default value

Drive:path/filename

(DWORD value)

This entry lists the processes that you want to exempt from suppression by Surface Shell.

Each process that you list in this entry must be in the form of a DWORD value. The Name field of each entry should be the full path and name of the executable for the process that you want to exempt from unknown UI suppression. For more information about unknown UI suppression, see the UnknownUISuppression registry entry in this topic. For information about using this registry entry for Surface application debugging, see Before You Debug.

Valid values are 1 to exempt a process from unknown UI suppression by Surface Shell, or 0 if it is not exempt.

No default value

Global MemoryManagerExemptApplications Subkey

 

Entry Description Default value

Application names

(DWORD value)

This entry specifies the list of applications that are exempt from the Surface memory manager.

Each application that you list in this entry must be in the form of a DWORD value. The Name field of each entry should match the name of the application as it is specified in the shortcut to the ApplicationName.XML file, which is placed in the %ProgramData%\Microsoft\Surface\v2.0\Programs folder. For more information about this shortcut, see Registering a Surface Application with Surface Shell.

Valid values are 1 to exempt an application from closing, or 0 if it is not exempt.

By default, MemoryManagerExemptApplications is empty.

No default value

Profiles Registry Subkeys

You can add registry entries to the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Surface\v2.0\Profiles registry key when you want to confine the configuration changes to a particular account profile. Depending on which account profile you want to add registry entries to, you must add one or all of the following subkeys under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Surface\v2.0\Profiles:

ImportantImportant
You must name your account profile subkeys exactly as they are listed here (Developer, SurfaceDebug, and SurfaceStandard).

  • Developer - These registry entries will affect the device made for Surface when it is in Windows mode.

  • SurfaceDebug – These registry entries will affect the device made for Surface when it is in Surface mode with troubleshooting enabled.

  • SurfaceStandard – These registry entries will affect the device made for Surface when it is in Surface mode.

For more information about these profiles, see Account Profiles. For more information about editing entries in the registry, see the Global subkeys section of this topic.

It is important to note that most registry entry changes that you make while a user session is in progress will not go into effect until certain events occur, such as:

  • The user starts a new Surface Shell session or the current session times out.

  • The device is switched from Windows mode to Surface mode.

  • Surface Shell is restarted.

If you want to be confident that your registry changes take effect, you will need to restart Surface Shell. There are several ways to remotely restart the Surface user session:

To restart the Surface Shell process after you make registry changes

  • You can restart the device made for Surface by using one of the following command-line tools:

    • Remote Shutdown. For more information, see Shutdown on the Microsoft TechNet website.

    • Logoff. For more information, see Logoff on the Microsoft TechNet website. Then, log on as administrator and use ModeSwitcher.exe to switch to Surface mode (and restart Surface Loader).

  • You can also restart the device made for Surface by using Remote Desktop Connection to connect to the device (which starts the session in Windows mode), and then double-click the Enter Surface Mode desktop shortcut (which closes the Remote Desktop connection and puts the device in Surface mode).

Profiles ApplicationProcessMonitoring Subkey

 

Entry Description Profile default value

DebugDumpTimeout

(DWORD value)

The DebugDumpTimeout entry specifies the maximum time that Surface Shell gives a debugger to generate debug dumps about applications that are failing (crashing) or not responding.

This time-out is relevant only when a session is ending or an application is starting (an application is not responding if it did not call the SignalApplicationLoadingComplete method on time). In these situations, if Surface Shell detects an attached debugger, it waits until this time-out passes before it ends the process. If Surface Shell cannot end the process after that, Surface Shell enters an out-of-order state. For more information about setting this registry entry, see Dump File Time-Outs.

Valid values range from 0 through 600 seconds. 0 seconds means that Surface Shell will wait forever for the application to exit if it is being debugged.

Developer: 0 (never times out)

SurfaceDebug: 0 (never times out)

SurfaceStandard: 300 seconds

Default: 300 seconds

Disable

(DWORD value)

If the Disable entry is turned on, users do not receive a notification if an application fails or stops responding, Surface Shell does not automatically restart applications, and unresponsive applications are not ended.

Valid values are 1 to turn on Disable or 0 to turn off Disable.

Developer: 1 (turned on)

SurfaceDebug: 1 (turned on)

SurfaceStandard: 0 (turned off)

Default: 1 (turned on)

HangingTimeout

(DWORD value)

A Surface application is considered to have stopped responding if it did not respond to Windows messages during the HangingTimeout time period.

Valid values range from 5 seconds through 300 seconds.

All profiles set to 5 seconds by default

LaunchDebuggerOnHang

(DWORD value)

The LaunchDebuggerOnHang entry determines whether the debugger that is associated with the optional DbgManagedDebugger registry entry should be started automatically if that application stops responding. For more information about debug dump time-outs, see Collecting Debug Dumps in Surface Mode.

LaunchDebuggerOnHang enables you to create a debug dump file while the application is deployed in a customer-facing environment. If an application is randomly not responding and the developer who wrote the application cannot reproduce the problem, configure DbgManagedDebugger, enable LaunchDebuggerOnHang, and let customers or testers interact with the device made for Surface as usual. After the precipitating events recur (the application stops responding and a debug dump is generated), disable the LaunchDebuggerOnHang entry and review the debug dump results. For more information about configuring DbgManagedDebugger, see Debugging Crashing Surface Applications and Debugging Unresponsive Surface Applications.

Valid values for this entry are 0 (false) and 1 (true).

  • 0 indicates that the debugger does not start if an application stops responding.

  • 1 indicates that the debugger automatically starts if an application stops responding. Surface Shell automatically opens the debugger that is specified in the optional DbgManagedDebugger registry entry.

All profiles set to 0 (false) by default

CriticalProcessMonitoring ModeProfiles Hive

 

Entry Description Profile default value

DebugDumpTimeout

Do not modify this registry key.

Disable

The Disable entry determines whether Surface Loader monitors Surface Shell or Surface Input for crashes or hangs, stops them when they hang, and restarts them when they crash or hang.

Valid values for this entry are 0 and 1.

  • 0 indicates that Surface Loader will monitor Surface Shell or Surface Input for crashes or hangs, will stop them when they hang, and will restart them when they crash or hang.

  • 1 indicates that Surface Loader will not monitor Surface Shell or Surface Input for crashes or hangs, will not stop them when they hang, and will not restart them when they crash or hang.

Administrator: Not supported. (This value applies only when Surface Loader is run, and Surface Loader does not run in administrator mode.)

Default: 1

User: 0

UserDebug: 0

HangingTimeout

Critical processes (Surface Shell and Surface Input) are considered to be hung if they have not responded during the HangingTimeout time-out period. If a critical process has stopped responding, the process is restarted, the RestartQuotaAttempts counter is incremented, and the RestartQuotaPeriod counter begins. If this restart exceeds the RestartQuotaAttempts value within RestartQuotaPeriod, the critical process is not restarted, and the error message is displayed on the unit, followed by the out-of-order message.

Valid values for HangingTimeout range from 2 seconds through 60 seconds.

Administrator: 5 seconds

Default: 5 seconds

User: 5 seconds

UserDebug: 5 seconds

LaunchDebuggerOnHang

Do not modify this registry key.

RestartQuotaAttempts

The RestartQuotaAttempts entry specifies the number of times during the RestartQuotaPeriod period that critical processes are automatically restarted after they crash or hang. For information about how to set the time during which the restart attempts are counted, see RestartQuotaPeriod. (The default value is three attempts within 10 minutes.)

Valid values for RestartQuotaAttempts range from 0 to MAX_DWORD, where 0 means never restart and go to the out-of-order state after the system first crashes or hangs and MAX_DWORD means always restart.

Administrator: 3

Default: 3

User: 3

UserDebug: RestartQuotaAttempts is set to MAX_DWORD (always restart), and the RestartQuotaPeriod value is ignored

RestartQuotaPeriod

The RestartQuotaPeriod entry specifies the number of seconds during which critical processes are restarted after they fail or crash during a session. For information about how to set the number of restart attempts, see RestartQuotaAttempts. The default value is three restart attempts within 600 seconds (10 minutes).

Valid values for RestartQuotaPeriod range from 5 through 86,400 seconds (24 hours).

Administrator: 600 seconds

Default: 600 seconds

User: 600 seconds

UserDebug: RestartQuotaAttempts is set to MAX_DWORD (always restart), so the RestartQuotaPeriod value is ignored.

StartupGracePeriod

The StartupGracePeriod entry specifies the time between when a critical process (Surface Shell and Surface Input) is started and when the HangingTimeout counter begins.

Valid values for StartupGracePeriod range from 0 through 600 seconds (10 minutes).

Administrator: 10 seconds

Default: 10 seconds

User: 10 seconds

UserDebug: 10 seconds

Profiles InactivityTimer Subkey

For more information about the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Surface\v2.0\Profiles\<Profile_Name>\InactivityTimer subkey entries, see Configuring Surface Shell Time-Out Durations.

 

Entry Description Profile default value

AppWasLaunched

(DWORD value)

After a user opens an application from Launcher, the user may become distracted. If the user does not interact with Surface, the AppWasLaunched time period elapses. Then the Surface software sends an event to each open application and asks the application if it wants to time out and close. If none of the applications cancel this event, a new screen (the inactivity screen) appears that asks the user if they want to do one of the following:

  • Continue their activity. If the user taps the Continue icon, the previous application reappears and the user can continue to interact with the application.

  • Start a new session. If the user taps the Start Over icon, the Surface software closes all running applications and shows the Attract application (starts a new Surface mode session).

Valid values are 0 (no time-out) or from 10 through 3,600 seconds (60 minutes).

The AppWasLaunched scenario also applies if users return to Launcher after they close all applications or leave one or more applications running in the background.

All profiles set to 120 seconds by default

Exploration

(DWORD value)

The Exploration time-out begins when a user touches the access point and goes to Launcher from the Attract application. If the user does not select an application and does not interact with the Surface screen for the Exploration time-out, Surface Shell closes Launcher and displays the inactivity screen that is described for the AppWasLaunched registry entry. This screen offers users the choice to either continue their activity or start over their Surface session.

Valid values are 0 (no time-out) or range from 10 through 3,600 seconds (60 minutes).

All profiles set to 60 seconds by default

InactivityUI

(DWORD value)

The InactivityUI entry specifies the maximum length of time that can elapse without a user touching either the Continue or the Start Over icon after an inactivity screen appears before Surface Shell closes the active applications and starts a new user session.

If a user does not touch either the Continue or the Start Over icons within the InactivityUI interval, all running applications are closed and the Surface session is restarted.

noteNote
You might want to make some applications cancel the inactivity time-out if, for example, the application is showing a movie or playing a song.

Valid values are 0 (no time-out) or range from 10 through 3,600 seconds (60 minutes).

Developer: 0

SurfaceDebug: 0

SurfaceStandard: 60 seconds

Default: 60 seconds

Profiles Shell Subkey

 

Entry Description Profile default value

ApplicationExitTimeout

(DWORD value)

By default, Surface Shell closes all connected applications that do not close within 5 seconds after Surface Shell issues the WM_CLOSE call.

Valid values are 5 seconds or more.

ImportantImportant
For debugging purposes, use the DebugDumpTimeout registry entry.

All profiles set to 5 seconds by default

AttractLoadingScreenTimeout

(DWORD value)

The AttractLoadingScreenTimeout entry specifies the time that the Attract application has to call the SignalApplicationLoadingComplete method after it has been started by Surface Shell. (For information about the entry to set time-out for applications other than the Attract application, see LoadingScreenTimeout.)

Valid values range from 30 seconds to a maximum of 60 seconds.

noteNote
To compensate for overall system performance immediately after the Windows operating system restarts, for the first several minutes after Surface Shell is started, this time-out is automatically adjusted to three times the time-out that is specified.

All profiles set to 30 seconds by default

EnableMemoryManager

(DWORD value)

The EnableMemoryManager entry is a DWORD value that determines whether Surface memory manager is enabled. By default, memory manager is enabled for the SurfaceDebug and SurfaceStandard account profiles. For more information about Surface memory manager, see Managing Surface Memory.

Valid values are 0 (disabled) and 1 (enabled).

Developer: 0 (disabled)

SurfaceDebug: 1 (enabled)

SurfaceStandard: 1 (enabled)

Default: 0 (disabled)

LoadingScreenTimeout

(DWORD value)

The LoadingScreenTimeout entry specifies the time that applications have to call the SignalApplicationLoadingComplete method after they have been started by Surface Shell. (LoadingScreenTimeout does not apply to the Attract application. For more information, see AttractLoadingScreenTimeout.)

Valid values range from 10 seconds to a maximum of 300 seconds.

noteNote
To compensate for overall system performance immediately after the Windows operating system restarts, for the first several minutes after Surface Shell is started, this time-out is automatically adjusted to three times the time-out that is specified.

Developer: 10

SurfaceDebug: 10

SurfaceStandard: 10

Default: 10

MemoryManagerOverloadThreshold

(DWORD value)

The MemoryManagerOverloadThreshold entry specifies the memory threshold percentage when Surface Shell starts to close applications. When the total physical memory that is being used exceeds the percentage specified in MemoryManagerOverloadThreshold, the system is considered overloaded and Surface Shell starts to close applications. For more information about the Surface memory manager, see Managing Surface Memory.

Valid values range from 0 to 100 decimal. (Because this entry is a percentage, you must type a value by using the decimal base, not the default hexadecimal base.)

All profiles set to 60 percent by default

SingleAppLoadingScreenTimeout

(DWORD value)

For devices made for Surface that are running in single-application mode, the SingleAppLoadingScreenTimeout entry specifies the time, in seconds, that the application has to load before the loading screen times out. If the loading screen exceeds the SingleAppLoadingTimeout value, the application process will be ended and a new instance started. For more information about configuring devices made for Surface that are running in single-application mode, see the SingleAppRestartPeriod and SingleAppRestartQuota registry entries.

Valid values range from 1 to 60 seconds.

All profiles set to 30 seconds by default

Profiles UISuppression Subkey

 

Entry Description Profile default value

AutoShutdown

(DWORD value)

The AutoShutdown entry determines whether the "The following programs are still running" screen is suppressed during logoff (if applications have not been closed before the logoff request).

Valid values are 0 (the "The following programs are still running" screen is displayed) and 1 (the "The following programs are still running" screen is suppressed).

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

Beep

(DWORD value)

The Beep entry determines whether the Windows system beep is suppressed. For information about suppressing other Windows sounds besides beep, see the WindowsSounds registry entry.

Valid values are 0 (system beeps can be heard through the speakers of the device made for Surface) and 1 (system beeps are suppressed and not sent to the speakers of the device made for Surface).

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

CrashDump

(DWORD value)

The CrashDump entry determines whether Windows Error Reporting generates a crash report in the event of a crash.

Valid values are 0 (generates a crash report automatically if the device made for Surface is not connected to the Internet) and 1 (report generation is suppressed).

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

CrashUI

(DWORD value)

The CrashUI entry determines whether the Windows Error Reporting UI is suppressed.

Valid values are 0 (Windows Error Reporting UI is displayed) and 1 (Windows Error Reporting UI is suppressed).

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

FastBugCheck

(DWORD value)

The FastBugCheck entry specifies how briefly the device displays a blue screen if a stop error occurs.

Valid values are 0 (disable) and 1 (enable).

noteNote
If you enable this registry entry (set it to 1) and a stop error occurs, the screen appears blue for approximately 2 seconds. If you disable this entry (set it to 0), the blue screen appears for the default Windows blue screen setting (longer than 2 seconds).

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 0

Default: 0

FastRecoveryOptions

(DWORD value)

The FastRecoveryOptions entry determines whether the device made for Surface displays the standard Windows Error Recovery screen if a stop error, power failure, or other catastrophic event occurs. The following illustration shows the Windows Error Recovery screen.

Windows Error Recovery screen

Valid values are 0 (show the Windows Error Recovery screen for the default 30 seconds) and 1 (suppress the Windows Error Recovery screen).

noteNote
If you want to start a device made for Surface by using one of the Safe Mode options, your selection input must be received within approximately 5 seconds, much sooner than the time that is noted on the screen.

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

FirewallPrompt

(DWORD value)

The FirewallPrompt entry determines whether the standard Windows Security Alert – Windows Firewall has blocked some features of this program dialog box appears when an application tries to accept an incoming connection that is not in the Windows Firewall exceptions list. The following illustration shows the Windows Firewall dialog box.

Windows Firewall security alert

Suppressing this dialog box is equivalent to clicking Keep blocking.

Valid values are 0 (show the Windows Firewall dialog box) and 1 (suppress the Windows Firewall dialog box).

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

MousePointers

(DWORD value)

The MousePointers entry determines whether Surface Shell suppresses the mouse pointer. MousePointers does not affect whether the text input pointer appears. If an application calls for a text input pointer, it displays on the device made for Surface.

Valid values are 0 (the mouse pointer is displayed) and 1 (you cannot see a mouse pointer that is activated by Windows 7 or any application on the device made for Surface).

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

ProgramCompatibilityAssistant

(DWORD value)

The ProgramCompatibilityAssistant entry determines whether the Program Compatibility Assistant dialog boxes are shown or suppressed. The Program Compatibility Assistant is displayed if one of the following conditions exists:

  • You try to install software that is known to be incompatible with Windows 7.

  • An installation fails for any reason.

Valid values are 0 (Program Compatibility Assistant displays) and 1 (Program Compatibility Assistant is suppressed).

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

TaskManager

(DWORD value)

The TaskManager entry determines whether you can access Windows Task Manager.

The easiest way to launch troubleshooting applications in Surface mode is to enable Windows Task Manager and run troubleshooting tools, such as a debugger or cmd.exe. (By default Windows Task Manager is disabled in Surface mode.)

To launch troubleshooting applications with Windows Task Manager, click File, click New Task (Run), and in the Create New Task dialog box, type the full path to the troubleshooting application executable. Troubleshooting applications (including TaskMgr.exe) should run on a secondary monitor or be exempted from unknown UI suppression. For more information about exempting applications from unknown UI suppression, see the Global UnknownUIExemptProcesses Subkey section of this topic.

Valid values are 0 (Task Manager is accessible) and 1 (Task Manager is not accessible).

noteNote
If you want to open troubleshooting applications with Task Manager, you must attach an external monitor to your device made for Surface and set it as your primary display. If you don't want to use an external monitor, you can add taskmgr.exe to the UI suppression exemption list.

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

TitleBarSuppression

(DWORD value)

The TitleBarSuppression entry determines whether Surface application pop-up windows and Surface Shell pop-up windows that have a title bar are suppressed.

Valid values are 0 (pop-up windows that have title bars are displayed) and 1 (pop-up windows that have title bars are suppressed).

noteNote
This feature is ignored if UnknownUISuppression is disabled. Set UnknownUISuppression to 1 if you also want to suppress Surface application and Surface Shell pop-up windows that have a title bar.

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

UACPrompt

(DWORD value)

The UACPrompt entry enables you to specifically control whether User Access Control prompts appear or are suppressed. If User Access Control prompts are suppressed, all elevation requests for permission are denied.

Valid values are 0 (UAC prompts are displayed) and 1 (UAC prompts are suppressed).

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

UnknownUIQuotaNumber

(DWORD value)

The UnknownUIQuotaNumber entry specifies how many unknown UI windows Surface Shell must suppress during the UnknownUIQuotaPeriod time period before the device made for Surface enters an out-of-order state.

The default value is three unknown UI windows suppressed within 10 minutes. If a fourth unknown UI window is encountered during the 10-minute time period, the device made for Surface enters the out-of-order state. For information about how to set the number of minutes during which unknown UI windows are suppressed, see UnknownUIQuotaPeriod.

Valid values range from 0 to MAX_DWORD.

Developer: not applicable

SurfaceDebug: 3

SurfaceStandard: 3

Default: 3

UnknownUIQuotaPeriod

(DWORD value)

The UnknownUIQuotaPeriod entry specifies the time period (in seconds) used to track Surface Shell suppressions of unknown UI windows. For example, if UnknownUIQuotaPeriod is set to 600 (10 minutes), and UnknownUIQuotaNumber is set to 3, then if Surface Shell suppresses more than 3 unknown UI windows within a 10 minute period, the device made for Surface enters an out-of-order state.

Valid values range from 0 to MAX_DWORD (seconds). The default value is 600 seconds (10 minutes).

Developer: not applicable

SurfaceDebug: 600

SurfaceStandard: 600

Default: 600

UnknownUISuppression

(DWORD value)

By default, for the SurfaceStandard account profile, all Windows 7 prompts, User Account Control prompts, Windows Firewall prompts, access to Windows Task Manager, and automatic updates are suppressed automatically on a device made for Surface. However, you might have additional application UI (not Surface UI) that might appear. The UnknownUISuppression entry specifies whether you want to suppress this other UI. For information about how you can exempt some unknown UI, see the Global UnknownUIExemptProcesses Subkey section of this topic.

Valid values are 0 (unknown UI are displayed) and 1 (unknown UI are suppressed).

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

WindowsDiagnosticsResolverUI

(DWORD value)

The WindowsDiagnosticsResolverUI entry determines whether the Windows Diagnostic Infrastructure (WDI) built-in resolver UI is shown or suppressed.

WDI captures trace event information. If a problem is detected, the WDI can take a snapshot of the buffered information and analyze it locally or upload it to Microsoft Customer Support. WDI displays a Send Error Report or Don't Send dialog box.

Valid values are 0 (WDI resolver UI is displayed) and 1 (WDI resolver UI is suppressed).

Developer: not applicable

SurfaceDebug: 0

SurfaceStandard: 1

Default: 0

WindowsSounds

(DWORD value)

The WindowsSounds entry determines whether Windows system sounds are suppressed.

Valid values are 0 (Windows system sounds are heard through the speakers of the device made for Surface) and 1 (Windows system sounds are suppressed and are not heard through the speakers of the device).

noteNote
Windows system sounds do not include the Windows system beep sound. To suppress the Windows system beep sound, see the Beep registry entry.

Developer: not applicable

SurfaceDebug: 1

SurfaceStandard: 1

Default: 0

Did you find this information useful? Please send us your suggestions and comments.

© 2011 Microsoft Corporation. All rights reserved.
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.