Testing Custom Desktop Features (Standard 7 SP1)


Microsoft Corporation

July 2010

This technical article provides information about the Custom Desktop feature group and includes brief feature descriptions and a practical guide to testing each feature.

The Custom Desktop feature group represents a set of features that modify the Windows desktop experience including message-box processing, dialog-box filtering, and branding.

What does the feature do?
  • Message Box Auto-reply Processing is a method used to suppress all message boxes from appearing on the desktop. The mechanism is an internal operating system (OS) feature that circumvents the message-box CreateProcess step and returns the default message.
  • Dialog Filter is a Standard 7 feature that enables the OEM to configure filters so that windows are selectively suppressed from displaying on the desktop. The feature includes a published feature for custom filters. The feature is primarily focused on suppressing Task Dialogs found in systems based on Windows 7 that replaced MessageBox dialog boxes for communicating system messages to the end-user.
  • Branding refers to the following two types of changes to the run-time image:
    • Customizing the logon background
    • Removing the Windows Embedded Standard 7 brand
  • Credential Providers are plug-ins to customize logon behavior such as the window or dialog-box frame that receives a logon and password. Standard 7 provides additional samples that align in the published credential-provider interface. A detailed design white paper is also included with the samples.

For more information, see Feature Limitations.

Who should read this document?
  • OEM product planners should read this document to gain an overview of desktop customization capabilities.
  • OEM developers should read this document to find information to resolve unwanted or unknown feature behavior.
  • Embedded product-support personnel should read this document for practical first steps to take when receiving calls from end-users and other customers.

The first step to understanding a feature for testing and troubleshooting is to review the intent of your design.

  • The purpose of Message Box Auto-reply Processing is to suppress all MessageBox dialog boxes with a default reply.
  • The purpose of Dialog Filter is to suppress task dialog boxes, specifically those dialog boxes that originate within the OS and contain information or warning messages.
  • The purpose of Branding is to support the OEM or value-added integrators that require the ability to self-brand specialized devices.

The second step to understanding a feature is reviewing its known limitations.

  • Message Box Auto-reply Processing is supported on x86 or 32-bit run-time versions and is not supported on amd64 or 64-bit run-time versions.
  • Dialog Filter has the following limitations:
    • The service will not cross window-session or privilege boundaries. This means that the dialog-box filter hook will be unsuccessful in administrator processes when User Account Control (UAC) is enabled.
    • The service moves the affected window off-screen and sends a window message. The message must be processed by the window procedure that acts to close the window or dialog box.
    • The configuration list file, Configurationlist.xml, can be deployed during setup only if setup is started using an image produced with the Create IBW Image from Answer File… menu option in Image Configuration Editor (ICE). In addition, the answer file must include the Dialog Filter feature with SMI settings referencing a local file.
  • The Branding feature has the following limitations:
    • The embossed string, “Embedded Windows 7”, is disabled if a non-production key is used. A non-production key that disables the unbranded feature might take the form of a blank key, or a 30-day or a 180-day key.
    • Some programs use static images when the About menu generates a dialog box.
    • The branding and the logon background might change if the user selects and modifies the desktop theme. The Personalize feature has the same effect.
    • Custom logon screens can be deployed during setup. However, setup must be started from an image created with the Create IBW Image from Answer File… menu option, and the SMI settings must reference local background-image files.
    • The image size or file size must be less than 250 KB.
  • Credential Provider samples require a full authentication stack because the Credential Provider interface is completely dependent on a full set of Windows features.

There are no known integration limitations in the Custom Desktop features with exception of the previously mentioned Credential Provider samples requiring an authentication stack.

This section provides answers to frequently asked questions and information about specific troubleshooting scenarios for the Custom Desktop features.

Message Box Auto-reply Processing does not work
  • Is the Message Box Auto-reply Processing feature deployed?
    To validate that the Message Box Auto-reply Processing feature is deployed, verify that the following registry key exists:
    HKLM\System\CurrentControlSet\Control\Error Message Instrument
  • Is the Message Box Auto-reply Processing feature enabled?
    The HKLM\System\CurrentControlSet\Control\Error Message Instrument registry value must be set to the following:
    EnableDefaultReply = 1
  • Is the Message Box Auto-reply Processing feature running on a supported operating system?
    The feature is supported on 32-bit systems. 64-bit systems are not supported.
  • Is the target window really a MessageBox?
    The feature will suppress message boxes, but not any other type of window.
  • Does the feature work for all known message boxes?
    Standard 7 originates relatively few message boxes; instead, it uses Task Dialogs that are not suppressed by this feature.
  • Why is the log not working?
    The Message Box Auto-reply Processing feature must be enabled for the log to work. Check the registry setting noted earlier in this section.
    If the log still is not working, try setting the registry key values to the following:
    EnableLogging = 1
    Then type the following under the HKLM\System\CurrentControlSet\Control\Error Message Instrument path entry:
    LogSeverity = 0
Dialog Filter does not work
  • How is the Dialog Filter feature deployed?
    The feature must be installed through setup. If it is successful, testing the feature by using the sc query dialogfilter command should return a running service.
  • How can I check that the Dialog Filter feature is installed?
    The feature should have a service that is running automatically in addition to a DialogFilter.exe process. When the service is shutdown, the DialogFilter.exe process is also shutdown. There are two processes on a 64-bit version.
  • Why is the service not suppressing windows?
    Dialog Filter requires a filter-configuration file, Configurationlist.xml, which is located in the \Programdata\Microsoft\Dialogfilter folder. Use DialogFilterEditor.exe to create the XML file.
  • DialogFilterEditor.exe is not on the run-time image. Where is it located?
    The file is located in the %PROGRAMFILES%\Windows Embedded Standard 7\EmbeddedSDK\Bin folder. Copy the executable along with the DialogFilterEditor.exe.mui file that is located in the subfolder.
  • How can I fix missing menus in Dialogfiltereditor.exe?
    Copy the DialogFilterEditor.exe.mui file that is located in the subfolder. For English, the file is found under % PROGRAMFILES%\Windows Embedded Standard 7\EmbeddedSDK\Bin\en-us.
  • Why does Dialog Filter not suppress windows after storing Configurationlist.xml?
    You must restart the service for the changes to be loaded from Configurationlist.xml.
  • Why does Dialog Filter not suppress a window after restarting the service from a command prompt with administrative credentials?
    Dialog Filter will not cross window-session boundaries when UAC is enabled. You must have administrative credentials to write to the Configurationlist.xml file, but only limited-privilege windows started with normal permission are suppressed. Administrator dialog boxes are suppressed if UAC is disabled.
  • Why does Dialog Filter not suppress my .NET application?
    Dialog Filter will not suppress .NET applications because the class string is part of the default filter and the Common Language Runtime (CLR) can change the window class.
  • Why are some windows not suppressing, whereas others are working as expected?
    Some windows, or their attributes, undergo change dynamically or late, after the window is interrogated. To work around this, enable the Dialog Filter event operational logs to find the differences. Copy and paste the results into the configuration list together with desired action values.
  • Why is the Dialog Filter event operational log empty?
    The Dialog Filter log must be enabled manually. Right-click on the operational log to enable it.
  • Why does Dialog Filter seem to filter even though the service is off (for example, with Notepad.exe)?
    The Dialog Filter will move windows off-screen and then send the designated message to close. When the service is off or when a target window is removed from the filter list, the window might start as an off-screen window. For example, Notepad.exe displays this behavior. Use Windows-Left Arrow to move the window back on screen. Move it manually and then close the window.
Branding does not work
  • How do I know if the Branding feature is deployed?
    Verify that the following registry key exists:
  • Why does the brand continue to appear after unbranding, or after a neutral-brand feature or component is installed?
    Most likely, a production key was not used.
  • Why does the background image not appear after setup?
    The image can be deployed from a Image Builder Wizard disk using a configuration set by using Create IBW Disk from Answer File… in Image Configuration Editor. Otherwise, include the Branding feature and copy your custom background images into the %WINDIR%\System32\OOBE\Info\Backgrounds folder.
  • How do I deploy my background images after deploying the feature?
    Copy your images to the %WINDIR%\System32\OOBE\Info\Backgrounds folder.
Credential Provider does not work
  • Is the Credential Provider feature registered?
    Verify that the Credential Provider DLL is registered. The preferred method of registration is to use the register script found in each sample. Use the unregister version of the script to uninstall the feature. No restart is necessary.
  • Is the system in the logon state?
    A restart is not required, but a logoff is required. If the screen does not display anything, you should click to logon as another user. It helps to have multiple users when testing. The run-time must include a full authentication stack.

By using the information in this article, you should now have a better understanding of how to test and troubleshoot the Custom Desktop features in your image.

For more information, see Dialog Box Filter and Message Box Default Reply.