Multilingual User Interface (MUI)
Useful related online links follow:
Multilingual User Interface Pack
Installing Windows XP Embedded with Service Pack 2
Hodge Podge Lodge: Remote Debugging, Localization, and Globalization in Windows XP Embedded
Comparing Windows XP Professional Multilingual Options
How to Add Multiple Language Support to a Run-Time Image
Adding Multiple Language Support in a Windows XP Embedded Image (XP Embedded SP1)
Windows XP Embedded Language Support Overview (XP Embedded SP2)
Language Support
List of available languages:
Language
|
Abbreviation
|
Arabic
|
ARA
|
Chinese – Simplified
|
CHS
|
Chinese – Traditional
|
CHT
|
Czech
|
CSY
|
Danish
|
DAN
|
Dutch
|
NLD
|
English
|
ENU
|
Finnish
|
FIN
|
French
|
FRA
|
German
|
DEU
|
Greek
|
ELL
|
Hebrew
|
HEB
|
Hungarian
|
HUN
|
Italian
|
ITA
|
Japanese
|
JPN
|
Korean
|
KOR
|
Norwegian
|
NOR
|
Polish
|
PLK
|
Portuguese
|
PTG
|
Russia
|
RUS
|
Spanish
|
ESN
|
Swedish
|
SVE
|
Turkish
|
TRK
|
More information about supported Languages and Locales
Standard 2009 does not support all the languages and locales that are supported by Windows XP Professional. You can use the links below for comparison purposes.
This FAQ shows all the languages supported by Windows XP Professional.
Frequently Asked Questions - Windows XP Home and Professional Editions
This page shows the locales supported by Windows XP Professional:
Windows XP/Server 2003 - List of Locale IDs, Input Locale, and Language Collection
Using Development Tools
This section contains helpful tips and tricks for Standard 2009 tools. For a general overview, visit the following Microsoft Web site:
Getting Started with Windows Embedded Standard Tools
Target Analyzer
See also:
Hardware Detection with Target Analyzer
The Target Analyzer tool has two versions:
Ta.exe is an MS-DOS® (16-bit real mode)-based application that enables you to obtain a list of hardware devices as reported by BIOS.
Tap.exe requires a Windows XP or a Windows Preinstallation Environment (WinPE) (32-bit protected mode) operating system. It inspects the hardware section of the registry to obtain a list of all hardware devices that have ever been installed in the system.
For best results, install XP Professional on your target device and then run TAP.EXE.
The Target Analyzer tool provides various levels of hardware detection, depending on the operating system that is running on the device. In a 16-bit environment, Ta.exe produces very limited results. Ta.exe can only make an assumption regarding the hardware abstraction layer (HAL) and CPU types. The following table shows the hardware device types that Ta.exe and Tap.exe can detect. Tap.exe can be restricted or unrestricted.
Device type
|
Ta.exe running in MS-DOS
|
Tap.exe running in WinPE
|
Tap.exe running in Windows XP Professional
|
Plug and Play BIOS
|
X
|
X
|
X
|
PCI
|
X
|
X
|
X
|
ACPI (presence)
|
X
|
X
|
X
|
ACPI (devices)
|
|
|
X
|
USB (presence)
|
X
|
X
|
X
|
USB (devices)
|
|
|
X
|
1394 (presence)
|
X
|
X
|
X
|
1394 (devices)
|
|
|
X
|
SCSI (presence)
|
X
|
X
|
X
|
SCSI (devices)
|
|
|
X
|
PCMCIA (presence)
|
X
|
X
|
X
|
PCMCIA (devices.)
|
|
|
X
|
DiskOnChip
|
X
|
X
|
X
|
ISA (presence)
|
X
|
X
|
X
|
ISA (devices)
|
|
|
Some/Maybe
|
HAL
|
Best guess
|
X
|
X
|
CPU (driver)
|
Best guess
|
X
|
X
|
IDE (presence)
|
X
|
X
|
X
|
IDE (devices)
|
|
|
X
|
GKW (other)
|
|
|
X
|
Software enumerated devices
|
|
|
X
|
Note If you removed a device from your system, you must also remove the component corresponding to the device in Component Designer and/or Target Designer.
Disabling software-enumerated devices recorded by Tap.exe
One potential disadvantage to using Tap.exe is that you get every device listed in the registry. This includes devices that were installed at some point in time, but have since been removed (such as an old video card you may have upgraded from) and also includes software-enumerated devices. Many configurations will show WAN Miniport and RAS Async components. These are listed in the registry of your computer, but may not be needed for standard networking features to function properly in your runtime. Disabling or deleting them can greatly reduce your footprint. To get the benefit, you must remove them from the configuration before you ever run through the check dependency phase. Alternately, install a fresh instance of XP Pro on your device before running the Tap tool.
Target Designer On-line content
Target Designer Guide
General information The difference between the build type "debug" and "release" in Target Designer
Debug builds are not supported. Building a debug runtime will result in errors because not all files will be in the runtime. For example, NTLDR will be missing.
Only retail (release) builds are supported because only the retail binary files were added to the repositories that shipped with the product.
How to allow multiple users to have access to a Standard 2009 database:
The Embedded suite creates predefined database roles on your development computer that you can assign to SQL Server users. These roles are WES_Reader, Wes_Importer and WES_Admin. You can see these predefined roles in Enterprise Manager. For additional information, visit the following Microsoft Web site:
Working with SQL Server to Manage Your Windows Embedded Standard Database
Altering the Default Settings of a Component
You cannot alter all components but some components have settings that you can configure in Target Designer to modify the default properties of the component before you build your runtime. For example, in your configuration, examine the settings for your display driver component. You will see that you have the ability pre-select the run-time resolution, refresh rate, and color depth.
Common Target Designer Errors Filters in Target Designer causing a CMI error
If you are using a complex filter, you may receive the following error message:
The CMI encountered the following error: 0x80042335 (-2147212491)
A database error occurred within the CMI.
To resolve this issue, add the following registry key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Embedded\CMI\DBCmdTimeout
You can then create the DBCmdTimeout DWORD value type, and set the value to 300, which is 5 minutes. If the error occurs again, or if you are using a more complex filter algorithm, you may need to increase the DBCmdTimeout value.
Configuration error when you try to create a new configuration
When you click New on the File menu, and then try to type a configuration name, you may receive the following error message:
Configuration Management Error Code=0x8002801d
To resolve this problem, upgrade your development computer to Windows Script 5.6. You can install this upgrade from the following Microsoft Web site:
Windows Script 5.6 for Windows XP and Windows 2000
Component Designer
This section contains tips, tricks, and techniques for creating your own components.
On-line content
Component Designer Guide
General information
When you create a new component, you need to put all the files into one flat folder. You cannot have a directory structure in a repository; it must all come from the root of the folder. If there are file name collisions, rename one of the files in the repository, and then change the Source Name property of the file resource in the component.
Using XPECMD to analyze components in the database
FP2007 introduced a new version of CMI Explorer, named Console Application for Windows XP Embedded, or XPECMD for short. Use this tool to report information about pre-existing components. This includes file resources, registry resources and component dependencies.
See Command-Line Tool.
The following blog describes this feature in more detail:
Console Application for Windows XP Embedded
Creating custom components
Review these links:
Componentizing Applications (Standard 2009)
Basic Componentization
Older links follow, that may offer additional insight:
How to Componentize an Application
Component Designer: Pulling It All Together
Creating custom components for Windows XP Embedded
Review this set of blog articles, walking you through every basic step to componentize WinAmp:
Componentizing Apps (Winamp project)
Componentizing the app means creating a component with Component Designer that owns all the file and reg and custom action resources, then determining all of the application dependencies on windows features so that the application can be installed offline via Target Designer.
With that basic definition, you should know that not all OEMs “componentize” their apps and drivers. They instead will identify the windows components they depend on for both their application installer and application to function, add those components to the runtime and after setup the OEM installs the drivers and apps from the desktop.
Benefits of componentizing the app/drivers to install offline:
Componentizing reduces the level of involvement in tweaking the builds post-FBA.
Footprint may be reduced, because post-FBA installation may introduce temporary files and servicing status files that can bloat the image size.
Additional componentization resources are available:
Windows Embedded Standard (Forums)
Windows Embedded Newsgroups (not as active as the Forums)
The Windows Embedded Standard team blog
MVP sites have lots of componentized drivers and helper components from the community
www.xpefiles.com
http://www.seanliming.com/
The Microsoft XPe site: http://msdn.microsoft.com/embedded/windowsxpembedded
Depending on the level of knowledge of the developer and familiarity with the tools and component building process and the complexity of the app, it may take anywhere from a couple of hours to a couple of days to fully determine the dependencies. In some cases, you may get a vast majority of the dependencies in that period, only to later identify non intuitive dependencies during testing, for instance a missing font or code page.
What is a macro component?
A macro component is simply a component that has only component dependencies—no binary or registry dependencies are listed within that component. If you create your own macro components in Component Designer, use the Macro Component check box. When you import the resulting component into your database, the display name will be bold to indicate that it is a macro component.
Also if you import your TAP.EXE output (devices.pmq) into Component Designer (File->Import) this will produce a macro component that contains a list of hardware components derived from your devices.pmq.
For more information:
Automating the Build Process Using Macro Components and Prototyping
Using Macro Components to Ensure Application Compatibility
How to create shortcut resources in your System Level Definition (SLD) file
One confusing aspect of componentizing an application for Standard 2009 has been how to create your own shortcut resources offline. This section provides the steps necessary to create a shortcut offline that will be propagated to the runtime by Target Designer. For this example, a shortcut to the Start Menu for a fictional Flight Simulator program called "XYZ" is created.
Note that there is one component in the database that generates all the standard shortcuts to the Start Menu that are normally installed by default in a full version of Windows XP Professional. That component is called "Standard Start Menu Shortcuts." Adding this component to your runtime generates links to 51 different files even if those associated files do not exist in your runtime. From Target Designer, you can simply disable any resources within the "Standard Start Menu Shortcuts" to prevent it from generating broken links.
Go to the resources area for your component, right-click within the area, and then click Add->Shortcut from the shortcut menu.
Type the shortcut name in the Name field. For this example,
FlightSim XYZ
Fill in the Description field with whatever it is that is being linked to. For this example:
FlightSim XYZ - realistic Flight Simulator
Type the link the DstName field. For this example:
Flightsim.lnk (This is the actual link's filename.)
Fill in the DstPath field with the location this link file is headed to. If the folder does not exist, Target Designer will create the folder for you. For this example:
%SystemDrive%\Documents and Settings\All Users\Start Menu\Programs\Flight Simulator\
Fill in the TargetPath field with the path to the program that you are linking to. Be sure to add the .exe file extension in the path. For this example:
%ProgramFiles%\FlightSim XYZ\Flight.exe
Fill in the WorkingDir field with the path to the folder where the program is located. Do not include the .exe file extension in the path for this variable. For this example:
%ProgramFiles%\FlightSim XYZ
In addition, you can fill in the Arguments field with any arguments that are normally in the shortcut. Some arguments may start with a minus (-) sign, for example,
-AnyArgumentHere, while other arguments do not. Please consult the shortcuts that are normally created with the given program.
For additional information about component creation, review the following:
Creating Custom Components
Creating driver components How to create third-party driver components
The Windows Embedded suite of tools allows you to easily create your own third-party driver components. The first step is to download the driver to a full version of Windows XP so that you can see all the file resources that the driver uses. In your working folder, create two folders. Name one "Rep." This is where you will place all the driver files that you identified. Name the other one "SLD." This is where your component will reside.
To create the driver component itself:
Start Component Designer and import the driver’s INF file. Make sure you select *.inf file type in the Files of type list. In the INF Processing Options box, click the default radio button, Automatic. Before pressing Start, specify a Log file name so you can easily review importing errors later.
The import procedure populates the Component Designer nodes with all the necessary files, resources, and registry keys. There may also be multiple components, one for each version of the driver. If you receive error messages, see the following Microsoft Web site:
I've Componentized a Driver and I Get Errors
Create a package object. To do so, right-click the Packages node, click Add Package, and then fill out an appropriate name and description.
Create a repository object.
Right-click the Repositories node, click Add Repository, and then fill out an appropriate name and description.
Set the Source Path to the repository files. To do so, click the Browse button, and then navigate to the Rep subfolder that you created in your working folder, in order to add the relative path to your component's repository (your working folder contains your .SLX component definitions). If the name of the folder is Rep, the repository Source Path indicated should be “.\..\Rep”. It appears this way because this defines a folder reference that is relative to where your component is stored in your SLD folder.
For each component in the SLD, set a reference to the repository object. To do so, click the Repositories… button, and then browse to the repository object that you created.
For each component in the SLD, add the package object as a group member. Expand each component, right-click Group Memberships, expand to the package object that you created, and then add it.
For each component in the SLD, mark it as Released. Right click on the component and then choose Release (consider holding off on this step until the component has been tested).
Save the SLD to your working folder.
Make sure you copied all the associated driver file(s), (*.sys, *.inf, *.cat) to the REP folder you created.
Use Database Manager to import the SLD into your database for inclusion in a runtime configuration. Make sure that the Copy repository files to repository check box is selected.
If your driver uses a self-extracting executable, it may be helpful to use a tool to track where all the driver files are extracted to, when the setup installer is launched in a conventional XP Pro system. These tools essentially snapshot the state of the system before and after the installer launches, and then compares the differences between the snapshots, reporting file and registry differences.
Third party installation monitoring tools
Filemon, Regmon and/or Process Monitor may also be helpful in monitoring changes made to files and registry keys when the driver is installed. You can obtain them from the following Web site:
Windows Sysinternals (for FileMon, RegMon, Process Monitor, Process Explorer etc.)
Driver Component Debugging
If you are having difficulties componentizing an audio driver, check this link:
I am having problems componentizing my third-party audio driver
For an overview of Microsoft debugging tools for Windows, visit the following Microsoft Web site:
Debugging Tools for Windows - Overview
For information about verbose debug tracing, see the following article in the Microsoft Knowledge Base:
How to enable verbose debug tracing in various drivers and subsystems
If you use a serial port for communication with a serial device, you may encounter false serial mouse detections. For a registry remedy, see the following article in the Microsoft Knowledge Base:
Serial Device May Be Detected as a Serial Mouse in Windows 2000
For information about the null modem cable technique for kernel debugging, see the following article in the Microsoft Knowledge Base:
How to set up a remote debug session using a null modem cable
To obtain checked binary files for Windows XP Professional visit the following Microsoft Web sites:
Windows XP Service Pack 2 Checked Build Network Installation Package
Installing third party driver and applications after FBA completes
Instead of creating a component, you can install drivers and applications after FBA completes.
In some cases, a third party driver installer application may fail to install in Standard 2009, while the same driver installer works in XP Professional. You can try the following steps which configure your XPe image to appear as if it is XP Professional, in order to allow an installer to function.
This same technique may be needed when installing Microsoft Desktop Updates (Updates that are designed for installation into a Windows XP Professional system).
1. In Standard 2009, the code that performs driver signing verification has been modified. The following registry key is unique to Standard 2009 (and XP Embedded):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup]
"MinimizeFootprint"
This key is used in SetupApi and was designed to accommodate reduced embedded footprint scenarios. When it exists, it disables many of the driver validation steps that are normally performed in XP Pro, while at the same time allowing a reduced footprint because crypto is not needed etc.
.PNF files are not generated, which are rather large files which might be a footprint problem in Standard 2009.
Driver signing is completely disabled.
With Driver signing disabled, crypto API is not called, so the developer can keep the Crypto API out of the image (here are the Crypto related components: Core Certificate Services, Cryptographic Network Services, Cryptographic Service Providers, FBA:Crypto, Kernel Mode Crypto Driver for RSA, Smart Card Cryptographic Service Providers, Certificate User Interface Services).
Some developers have needed to restore Driver signing verification functionality for certain application or driver installers to function.
If you discover that you need to disable MinimizeFootprint in order to install a third party driver or application:
Verify that the Crypto components listed above are included.
Ensure that your image contains the FBA: Driver Signing component. This component contains catalog files which contains, among other things, default paths used when installing device drivers.
Completely delete, or rename the MinimizeFootprint key.
Reboot and then install your app.
Restore the MinimizeFootprint key and then reboot your computer. The Windows Embedded Standard 2009 Test team has NOT conducted full tests with this flag turned off (removed).
It is possible that if you keep MinimizeFootprint disabled, your image may be missing some of the above functionality (the components listed above) required to perform driver signing etc, which could cause random compatibility problems if not present.
2. The following steps restore the ability to automatically detect all the in the box drivers supplied by XP Pro. Please note that this should be a temporary step to enable your installer to function. If you want to support this functionality permanently in your XPe device, use the following component instead, which componentizes driver.cab etc: Generic Device Driver Support, and then pick and choose which device driver class you wish to support via its Settings.
Create a Windows\Driver Cache\i386 folder on the XPe machine
Copy driver.cab and sp1.cab and/or sp2.cab files (from an XP Pro SP2 machine) to the above folder.
Also copy drvindex.inf to Windows\inf on the XPe machine. During driver installation, the system first checks drvindex.inf to make sure that the files it needs do actually exist in the driver.cab and sp2.cab files.
Remove or rename the MinimizeFootprint registry key (and reboot)
Installing a third party driver via rundll32
You can install an application or driver by directly using setupapi and rundll32:
rundll32 setupapi.dll,InstallHinfSection DefaultInstall 132 c:\Windows\inf\myInfFile.inf
(Substitute the actual name of the DefaultInstall section and the full path for the inf file in the previous command. No spaces should be removed or added in between)
It may be necessary to include the following components in the design:
Primitive: Rundll32
Primitive: Setupapi
PnP (User-mode)
Primitive: Umpnpmgr
PnP (Kernel-mode)
FBA: PnP
Add Hardware Control Panel
For more information:
InstallHinfSection Function
Setup API
|