Getting Started with Windows Embedded Standard 2009 Tools


Microsoft Corporation

January 2009

Windows Embedded Studio for Windows Embedded Standard 2009 is a set of development tools that you can use to create custom operating system images, based on the hardware and software requirements of your embedded system design. This technical article contains information on getting started with the Windows Embedded Standard tools.

Microsoft divided Windows Embedded Standard into clearly defined units of functionality called components. Because Windows Embedded Standard is based on the same binaries that are used in Windows XP Professional, the components that are included in Windows Embedded Standard correspond exactly to the features in Windows XP Professional. A component may describe a simple feature such as Notepad, or a larger and more complex feature such as Internet Explorer. Windows Embedded Standard includes over 10,000 components.

Because Windows Embedded Standard is a "componentized" version of Windows XP Professional, embedded software developers can use the same tools that developers of Windows XP Professional-based applications do. This includes Microsoft Visual Studio.

Target Analyzer is a utility that probes your target hardware and automates the collection of hardware-specific data. This probe creates an output .xml file (Devices.pmq) that contains hardware-specific information from your target device. Target Designer and Component Designer use this file to automatically select the driver components from the component database that are required to support your device hardware. This is usually the first step in creating a run-time image.

There are two versions of Target Analyzer:

  • Tap.exe
    Use Tap.exe to provide the most comprehensive listing of hardware on your device. It is a protected Win32-based application that runs on Windows XP, Windows 2000 Service Pack 2, Windows PE, and Windows Vista.
  • Ta.exe
    Ta.exe is a real-mode 16-bit version of Target Analyzer that can be run by using MS-DOS. Use Ta.exe only for 16-bit MS-DOS devices.


Target Designer is used to quickly develop, customize, and build embedded run-time images. You build and customize a run-time image by using a configuration, which defines the exact contents of a target run-time image (windows features, drivers, and custom applications).

A configuration is stored in a .slx file (which is an .xml file). The .slx file can be loaded and edited as needed. You can customize a configuration by selecting components from the database and then resolving any dependencies on other components. Target Designer can automate most of the dependency resolution and requires manual intervention only to resolve ambiguities. Some components also enable you to configure certain settings in Target Designer that are applied to the final run-time image. This reduces the time that is required to configure a Windows Embedded Standard image after it is deployed to a device. After a configuration is completed, you can build the configuration into a run-time image, and then deploy that run-time image to your embedded device.

The build process does not compile source files. Instead, it creates a directory structure in a specified location and copies the actual binary files that are required for the Windows Embedded Standard image. The contents of the directory structure can then be moved to your target device, where you can start the device with your run-time image.


Target Designer will display information in four panes when a new or existing configuration is opened.

The left pane is called the Component Browser and here all components in the database will be displayed, and you can switch between a Category and List view. Macro components, components that group related components together, are displayed in bold font. In order to see the maximum number of available components in the Component Browser, set the visibility property in Target Designer to 100.

  1. On the Tools menu, click Options.

  2. Click the Advanced tab.

  3. Change the Minimum visibility setting to 100.

  4. Click OK.

The center pane is the Configuration Editor pane that shows a base component to which you can add your additional operating system features and drivers. The resources and settings nodes for each component can be displayed.

The right pane is the Details pane which shows several component properties. Clicking the Settings node for any component in this pane will also show the configurable options for those components. The bottom pane is the Output pane. This pane shows the output from dependency-resolution and build activities, in addition to any tasks that must be resolved by the user when you build the image.


To create a basic operating system image, follow these steps:

  1. In Target Designer, on the File menu, click New.

  2. Type a name for your configuration file.

  3. Double-click or drag components from the Component Browser to the Configuration Editor. For example, add the WinLogon Sample Macro and Internet Explorer components.

  4. Configure component settings.

    For example, click the Settings node for Internet Explorer and enter a URL for the Internet Explorer homepage in the Home Page URL field.

  5. In the Settings node for Winlogon Sample Macro, clear Explorer shell.

  6. On the Configuration menu, click Check Dependencies.

    You see log information in the Messages tab of the Output pane.

  7. Click Close when you have finished.

    You see a task in the Tasks tab of the Output pane after the dependency check is finished.

  8. Double-click the task and select a shell, for example, Explorer shell.

  9. Click Add.

  10. Rerun the dependency check until there are no more tasks left to be resolved.

  11. On the Configuration menu, click Build Target Image.

  12. Enter a location for the image.

    By default, the image will build to \Windows Embedded Images on the development workstation; this folder is created when you install the Windows Embedded Standard product. For example, enter C:\Windows Embedded Images\Test.

    The Windows Embedded Images folder is created on the partition on the development workstation that has the most available space. Therefore it may be located on a partition other than C:.
  13. Specify a location and name for the build log file.

    By default, this is located in the current user’s Document folder on the development workstation. For example enter C:\Users\<user name>\Documents\Test.log.

  14. You can safely ignore the Release or Debug options under the Build type field. All images will be built as Release type. The Windows Embedded Standard product does not ship debug binaries.

  15. Click Build.

    If a previous image was built to this folder then you are asked whether you want to overwrite the old image.

  16. After the build is complete, browse to the C:\Windows Embedded Images\Test folder and you see the operating image contents.

    These are the folders and files that you will copy to your target device.


Component Designer enables you to create new components for customized software and drivers. With Component Designer, you create and edit components specifically for your device. You can also resolve or include any related resources, dependencies, groups, and repositories. A component that you create by using Component Designer is known as a custom component and is saved as an xml file with a .sld file name extension.

Components can easily be defined. They are the smallest individually selectable pieces of functionality that can be included or excluded from an embedded run-time image, and consist of files, registry entries, and dependency information. In short, a component is a block of functionality. Turning your application into a component is called "componentization."


Component Designer will display information in two panes when a new .sld is created or an existing .sld is opened.

The left pane is the Object pane and displays all the object types that you can create in your .sld file. The right pane is the Details pane.


To create a basic .sld file that contains one component, follow these steps:

  1. In Component Designer, on the File menu, click New.

  2. Right-click the Components node and then click Add Component.

  3. Name the component and complete any of the other fields in the Component Properties box.

  4. Expand the component, and then right-click the Group Memberships node.

  5. Click Add Group Membership.

  6. Locate the available groups and add a membership on either a hardware or software group by selecting it, and then click OK.

  7. Right-click the Files node.

  8. Click Add, then click File.

  9. Type a Target name for your file.

    This is the name the file will be given on the Windows Embedded Standard image, for example, Test.dll.

  10. Enter a Source name for your file.

    This is the name of the file that is in your repository folder, and may differ from the final name of the file after the image is built.

    Source file names are used when multiple files that are in the same repository have the same name. This causes a conflict. Therefore, one file may be decorated to differentiate it.

    For example, you can have Test.dll and System32_test.dll as separate file resources in a component, both residing in the same repository, but Test.dll will be bin placed in \Windows\Test.dll and System32_test.dll will be bin placed in \Windows\System32\Test.dll in the final image.

  11. By using the arrow next to the Destination field, browse to the destination where the file will be bin placed on the Windows Embedded Standard image.

  12. Select the appropriate destination.

  13. Click OK.

  14. Right-click the Registry Data node.

  15. Click Add Registry Data.

  16. Select a registry root from the Root list.

  17. Enter a Key name or browse to the registry on the local computer to find the key name.

  18. Enter the registry Value name.

  19. Select the registry type from the Type list.

  20. Enter a registry Value.

  21. Click OK.

  22. You can add component or group dependencies for your custom component by right-clicking on the Component or Group dependency node and moving through the appropriate component or group. This is where you would specify the other Windows components that your custom component requires in the Windows Embedded Standard image.

  23. You do not have to add a Build Order Dependency to most components.

  24. Right-click Resources.

  25. Here you can add several custom actions that would run during the setup (FBA) phase of the Windows Embedded Standard image. These include the following:

    1. Component Branch
    2. PnP Device ID
    3. Service Data
    4. RunOnce Request
    5. FBA Generic Command
    6. FBA DLL/Com Registration
    7. FBA OC Mgr Request
    8. Shortcut
  26. Save the .sld file by using a unique name.

All objects in a .sld file are optional, but can be created in a similar manner as the component is created. The most common objects that are created are Repository and Package objects.

After these objects are created, the Component object can be associated with these by expressing a membership on them. Use the component Details pane, or the Group Memberships node to create the association.

The component database contains the definitions, or metadata, of each platform, each component, and any supporting data. The database .mdf file can be stored on the local development workstation or stored on a shared server to better enable team development.

The information in the component database is used by the other Windows Embedded Studio tools. Information in the database is always read-only and cannot be updated in place. Database information can be revised only by editing a component .sld file and then re-importing it into the database. In other words, the component database can be viewed as a "component warehouse."

The Component Database contains the following kinds of data:

  • Component
    Defines a discrete unit of functionality that you can add to a configuration and therefore to your run-time image. A component is associated with a platform and references the resources that compose the platform's functionality. It also contains information about the logic that is required to add specific functionality to a run-time image.
  • Resource
    Contains information about an element that is required in the run-time image. The most common resources are files and registry keys. Component definitions include the resources that form their functionality.
  • Dependency
    Describes a dependent relationship on a component or a group of components. Component definitions include dependencies on other components
  • Repository
    Contains information about the location of files that are referenced by a component. The repository specifies a path of the physical repository. This is a folder that is located on either the local computer or on a shared network directory.
  • Group
    Identifies groups of components or repositories so that operations can be applied to a group, instead of to individual objects.

The repositories are a collection of folders that contain the physical operating system, driver, and custom application files. These folders are created when the Windows Embedded Standard suite of tools is installed on the development workstation. These files are what are bin placed in the operating system folders when a run-time image is built in Target Designer. Each folder has a unique GUID, and corresponds to a specific version of the product, such as Service Pack 1 or Service Pack 2. Custom components that are created by users will also have an associated custom repository folder that is created to store the application’s files when the component is imported into the component database.


Component Database Manager is used to import components into the database, to browse the database, to change the location of repository folders, and to delete objects from the database. Component Database Manager also enables you to select a database server to connect to.

The server listed in Component Database Manager is the server that all Windows Embedded Standard tools will use. Its value is stored in the registry on the computer Component Database Manager is running on. You can have multiple databases over the network, and use Component Database Manager to switch between them. When switching databases, if you are the administrator on your system, you can specify that you want to switch databases for all users. Component Database Manager can also be used to delete components and objects from the database. In order to do this it must open in "Exclusive Mode." This means there are no other active connections to the database (other users who are connecting to the database or Windows Embedded tools open on the development workstation).

To incorporate a customized application, service, or driver into your run-time image, you can use Component Designer to create a new component and then add it to the component database as a custom component. This procedure is known as "importing data into the component database" or as "importing a .sld file."


Component Database Manager has several tabs available:

  • Database
    This is where you can specify the database to connect to, and where the Import button is for importing custom components into the database.
  • Platform
    There is only one supported platform, x86.
  • Package
    Packages are groupings of components. If a package is deleted from the database then all components that have a membership on that package will be deleted also.
  • Component
    This is where you can view all components in the database. This includes the custom components that you may have imported. Note there may be multiple revisions of components shown in this tab. This is because components could have been updated for SP1, SP2 or other. Only the most recent revision of a component (the revision number being Rxxxx in the component display name) will be available in Target Designer. You can search for components by using filters.
  • Repository
    This is where you can view all the repository folders present on the development computer. This tab is where you can change the location of the repository folders if you have moved them to another development computer or to another location on your development computer.
  • Group
    This tab lists all dependency groups.

What you have learned

By using the information about the Windows Embedded Standard tools presented in this technical article, you can quickly get started customizing and building your Windows Embedded Standard images.

For more information about navigating Target Designer, see the Navigating Windows Embedded Standard's Target Designer screencast at this Microsoft Web site.

For more information about navigating Component Designer, see the Navigating Component Designer screencast at this Microsoft Web site.