Archive for the ‘Windows XP Embedded’ Category
New Windows Embedded Tool: Driver Injector
I have developed a new tool called Driver Injector for Windows Embedded which makes installing drivers easier and it helps a lot in case there are problem during a driver installation. The tool will automatically search for matching drivers and will inject them to the target system. This can help if you need to install lots of drivers from a driver DVD. In this case Driver injector will do the work for you. Just specify the devices.pmq file (run TAP.exe on your target device to get the device information) and specify the driver search directory – in this scenario it will be the driver DVD. After a few clicks all drivers are included in your image and Windows can install them automatically.
The tool also helps if there is a problem when installing a driver. Windows normally just shows that there was an error installing the driver (Cannot find file specified, The service specified is invalid,..). However it lacks important information. When this is the case just explore the INF file of the driver with Driver Injector. The tool will show you what is missing from your image within a few seconds. All missing files are highlighted. To solve the issue just copy the missing files to your image and install the driver again. This is the easiest and fastest way to solve these kind of errors.
The tool can be downloaded for free on the Elbacom Website: http://www.elbacom.com/embedded/products/tools
Also I have published a detailled how to on the techblog and will add additional howtos for specific usage scenarios within the next days.
Written by Wolfgang Unger
February 3, 2011 at 16:30
Posted in Windows 7, Windows 7 Embedded, Windows XP Embedded, XP Embedded Builder
Tagged with Driver Injector, driver installation error, explore inf files, inf
PowerPoint Viewer 2007 – can’t load PPTX files
If you load pptx files using PowerPoint Viewer 2007 on XP Embedded or Windows Embedded Standard 2009 you will get the following error message:
“This file requires the Compatibility Pack for the 2007 Office system to view its contents”
The reason for this error message is that PowerPoint Viewer 2007 needs the t2embed.dll located in the Windowssystem32 directory.
To solve the error copy the t2embed.dll from a XP Professional system to your embedded system.
Written by Wolfgang Unger
March 16, 2010 at 13:04
Posted in Windows XP Embedded
POSReady 2009 and BGInfo – missing Network information
If you like to use BGInfo on POSReady you will notice that the Gateway information and other network information is missing from the output.
The lack of this information is caused by a missing DLL file which is not included in POSReady 2009.
To enable this output copy over the "inetmib1.dll" file from an English XP Pro SP3 installation to the POSReady system.
The file is located in the Windowssystem32 directory. If you refresh the information now using BGInfo all information is displayed.
Written by Wolfgang Unger
November 27, 2009 at 13:20
Posted in Windows XP Embedded
Driver Extractor for XP Embedded and Windows Embedded Standard
Download is available on the Elbacom Techblog (v0.9)
Driver Extractor is a tool which makes creating SLD components for drivers very easy.
All you need to do is to run the tool on the target machine with XP, Vista or Windows 7 and all device drivers installed.
Then you just need to select the devices for which the drivers should be exported into an SLD file and click export.
Driver Extractor will then copy all the needed files and creates a component for XPe/WES with Repository for you.
After importing the component to the database you can easily create your image.
Requirements
- .NET Framework 3.5 SP1
- Windows Operating system with all needed device drivers installed
- WMI Support (if running on an embedded OS)
- Windows must be installed on C:Windows in the current version
How To Use
- Run DriverExtractor.exe on the target device. The Windows version should be XP as the exported drivers are taken from the current installation. If you use Vista it will take Vista driver which might not work under XP!
- Check the devices for which you want to export the drivers.
- Click Actions / Export Selected.
- Choose an output directory. The tool will create a separate folder for each component named by the devices name.
- Import the component (located in the output directoryDevicenamesld directory) into the Database by using the Component Database Manager

- Add the component to your configuration
Description
Menus
| File / End | Ends the program |
| Actions / Export Selected | Exports the drivers for the selected devices |
| Actions / Select All | Selects all devices |
| Actions / Deselect All | Deselects all devices |
| Actions / Refresh | Refreshes the device list |
| View / Files of selected device Contextmenu / Show Driver Files |
Shows the needed driver files for the current selected device |
| View / Properties Contextmenu / Properties |
Opens the Windows properties for the current selected device |
| ? / About | Displays information about the tool |
Toolbar
Shows the needed driver files for the current selected device
Exports the drivers for the selected devices
Opens the Windows properties for the current selected device
Written by Wolfgang Unger
October 12, 2009 at 11:53
Posted in Windows XP Embedded
Enhanced Write Filter – Installation Batch File
I have created a small batch file which will help you to integrate the Enhanced Write Filter into an existing image.
This batchfile automates the steps which I posted a while ago and makes the integration very easy.
Requirements
The batchfile needs some files to be present which I cannot provide here for download but you can easily extract them by using the Target Designer.
- Create a folder named ewfinstall
- Download the Windows Server 2003 Resource Kit
- Copy the Regini.exe from the Resource Kit to the ewfinstall folder
- Start Target Designer
- Add Enhanced Write Filter component
- Add EWF Manager Console application component
- Add EWF NTLDR component
- Add Misc. Command Line Tools component
- Build the image to any folder
- copy the following files to the ewfinstall folder
- Windowsinfewf.ini
- Windowssystem32ewfdll.dll
- Windowssystem32ewfinit.dll
- Windowssystem32ewfmgr.exe
- Windowssystem32driversewf.sys
- ntldr
- Windowssystem32reg.exe
registrymachine
SYSTEM
CurrentControlSet
Enum
Root [1 5 7 14 17]
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEM]
[HKEY_LOCAL_MACHINESYSTEMControlSet001]
[HKEY_LOCAL_MACHINESYSTEMControlSet001Control]
[HKEY_LOCAL_MACHINESYSTEMControlSet001ControlClass]
[HKEY_LOCAL_MACHINESYSTEMControlSet001ControlClass{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
"UpperFilters"=hex(7):45,00,57,00,46,00,00,00,00,00[HKEY_LOCAL_MACHINESYSTEMControlSet001Services]
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEWF]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Type"=dword:00000001[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEWFFBA]
"OVSize"=dword:00000000
"OVLevel"=dword:00000001
"PVConfigs"=dword:00000001
"EwfEnable"=hex(7):31,00,00,00,00,00
"EnableLazyWrite"=hex(7):30,00,00,00,00,00
"PVDisk"=hex(7):30,00,00,00,00,00
"PVPart"=hex(7):31,00,00,00,00,00
"PVOptimize"=hex(7):30,00,00,00,00,00
"PVType"=hex(7):31,00,00,00,00,00[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEWFParameters]
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEWFParametersProtected]
[HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEWFParametersProtectedVolume0]
"Type"=dword:00000001
"Enabled"=dword:00000000
@echo off
echo ————————-
echo EWF Installer
echo created by Wolfgang Unger
echo ————————-if "%1"=="" GOTO ARG_ERROR
if "%2"=="" GOTO ARG_ERRORecho Copying EWF files…
copy ewfdll.dll %1Windowssystem32
copy ewfinit.dll %1Windowssystem32
copy ewfmgr.exe %1Windowssystem32
copy ewf.sys %1Windowssystem32drivers
copy ewf.inf %1Windowsinf
copy ntldr "%1"echo Changing permissions in registry…
regini.exe EWF_Reg_Config.txtecho Importing registry data…
reg import ewf.reg
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFParametersProtectedVolume0" /v ArcName /t REG_SZ /d %2 /fecho Done.
GOTO END:ARG_ERROR
echo usage ewfinstall.bat Drive ARC-Path
echo ewfinstall.bat C: multi(0)disk(0)rdisk(0)partition(1):END
How to use the script
Run ewfinstall.bat with two arguments
The first argument specifies the drive letter where Windows is installed, e.g. C:
The second argument specifies the ARC Path where Windows is installed, e.g. multi(0)disk(0)rdisk(0)partition(1)
You can find the ARC Path in the boot.ini if you are unsure what to use.
After the script has finished restart the PC.
You can enable the EWF by running ewfmgr c: /enable
Written by Wolfgang Unger
September 15, 2009 at 16:43
Posted in Windows XP Embedded
Creating and deploying images using WAIK and imagex
Before beginning with the image creation or deployment – please download the WAIK tools from Microsoft (http://www.microsoft.com/downloads/details.aspx?FamilyID=C7D4BC6D-15F3-4284-9123-679830D629F2&displaylang=en) and create either a bootable DVD or bootable USB stick which contains imagex. For this please follow the documentation that comes with the WAIK tools.
Preparation
Please follow the preparation steps for both – image creation and image deployment as you’ll need to have a working network connection.
Setting up a DHCP server
You can skip this step if you have a DHCP server running in your network.
- Create a new dialup connection – the settings like number, etc. are not important.
- Open the settings of the created dialup connection and enable internet sharing for the local network adapter which will be connected with your target device.
- Check the IP-address of the local network adapter – it should be 192.168.0.1
Create a network share
On your development machine set up a network share where the image will be located. Please make sure you can access the network share from another pc and that you have write access to this share.
Mapping a network drive in Windows PE
- Boot the target machine from the previous created media.
- In the command prompt type ipconfig to check if the pc has a valid ip address. You can use ping (e.g. ping 192.168.0.1) to test if the connection to the development pc works.
- Map a network drive to your development pc.
net use N: \<IP-Address><Sharename> [/User:<pcname><username> <Password>] Sample
net use N: \192.168.0.1images /User:devmachineadministrator admin
Create an image
To create an image we will use the imagex tool which comes with the WAIK tools. For more information on imagex please have a look on Microsoft Technet http://technet.microsoft.com/en-us/library/cc722145.aspx
- Type the following command
imagex /capture C: N:image.wmi “Master image” You can also use additional paramters such as /compress to compress the image. For additional arguments please type imagex /?
Deploy an image
Before we will deploy the image we will prepare the target disk to make sure that the image can boot after the deployment.
Preparing the target disk
- Run diskpart and type the following commands
LIST DISK
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
——– ———- ——- ——- — —
Disk 0 Online 149 GB 0 B
Disk 1 Online 149 GB 0 B
Use this command to find out the disk id of the disk that should be used as target.
SELECT DISK 0 (instead of 0 use the appropriate disk id of your target disk)
CLEAN (this will remove all partitions on the target disk)
CREATE PARTITION PRIMARY (this creates a primary partition on the target disk)
ACTIVE (set the previous created partition active)
ASSIGN LETTER = C (assign the drive letter C)
FORMAT FS=NTFS QUICK (do a quick ntfs format)
EXIT (quick diskpart)
Deploy the image
- Run the following command to deploy the image from the network share
imagex /apply n:image.wim 1 c: - Reboot your machine – it should now boot from the image properly.
Written by Wolfgang Unger
January 29, 2009 at 16:15
Posted in Windows XP Embedded
How to integrate/remove EWF in a running XPe image
Installation
1. Copy the following files from your Repository to your target device.
| Filename | Targetdirectory + filename |
| ewfdll.dll | Windowssystem32ewfdll.dll |
| ewfinit.dll | Windowssystem32ewfinit.dll |
| ewfmgr.exe | Windowssystem32ewfmgr.exe |
| ewf.sys | Windowssystem32driverewf.sys |
| ewf.inf | Windowsinfewf.inf |
| ewfntldr | ntldr |
2. Run regedit.exe
Right click on the key HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumRoot and select permissions.
Change the permissions for your user to full and click apply.
3. Copy the following and change %ProtectedVolume% to the ARC path of the Volume you want to protect. You can find the ARC path for the boot volume in the boot.ini – it will look like this ”multi(0)disk(0)rdisk(0)partition(1)”
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEM]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSet]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
"UpperFilters"=hex(7):45,00,57,00,46,00,00,00,00,00[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWF]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Type"=dword:00000001[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFFBA]
"OVSize"=dword:00000000
"OVLevel"=dword:00000001
"PVConfigs"=dword:00000001
"EwfEnable"=hex(7):31,00,00,00,00,00
"EnableLazyWrite"=hex(7):30,00,00,00,00,00
"PVDisk"=hex(7):30,00,00,00,00,00
"PVPart"=hex(7):31,00,00,00,00,00
"PVOptimize"=hex(7):30,00,00,00,00,00
"PVType"=hex(7):31,00,00,00,00,00[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFParameters]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFParametersProtected]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFParametersProtectedVolume0]
"Type"=dword:00000001
"ArcName"="%ProtectedVolume%"
"Enabled"=dword:00000000
4. Import the saved registry file.
5. Reboot
The EWF should be integrated now into you image but it is disabled by default. You can enable it by running ewfmgr c: /enable
Removal
1. Locate the following files on your target device and delete them
| Filename |
| Windowssystem32ewfdll.dll |
| Windowssystem32ewfinit.dll |
| Windowssystem32ewfmgr.exe |
| Windowssystem32driverewf.sys |
| Windowsinfewf.inf |
| ntldr |
2. Copy the ntldr from your Repository to the target devices root directory.
3. Run regedit.exe
4. Remove EWF from the following key
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
"UpperFilters"
5. Delete the following key in the registry
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWF]
6. Reboot
The EWF should be completely removed from your system now. Please do not forget to copy over the ntldr before rebooting!
Written by Wolfgang Unger
December 22, 2008 at 19:25
Posted in Windows XP Embedded
Cannot access CD/DVD drive with Windows Explorer
When you try to explore the content of a DVD or CD drive in XP Embedded with your Windows explorer nothing happens or the explorer will automatically jumps to the next item in the folder list. By using the command line you can access the CD/DVD drive without problem and you are able to run applications too.
This behavior is can be caused if you have a CD/R(W) drive and you added the IMAPI – CD Burning component and use Minlogon. In this case Windows tries to access the temporary write cache which is normally located in the documents and settings folder for the user but with Minlogon this folder does not exist.
To resolve this error just open the properties of the CD/R(W) drive and go to the Recording tab. In this tab disable the “Enable CD recording on this device” checkbox and click ok. Now you can access the CD/DVD drive again.
Written by Wolfgang Unger
December 2, 2008 at 18:27
Posted in Windows XP Embedded
Driverinstallation in XP Embedded fails with message “problem installing error occurred. A service installation section in this INF is invalid”
If you install a driver in XP Embedded you get the following error and the device driver installation fails.
“A problem installing <devicename> error occurred. A service installation section in this INF is invalid”
This will happen when the driver inf file contains a file which is not available in the driver folder and not available on the Windows system. Some drivers assume that the files already exist because they are there on a full XP Pro installation.
To solve this and be able to install the driver open the inf file in notepad and have a look into the the CopyFiles section.
Check if all files are either in the windows folders (system32, system32drivers,..) or in the driver folder.
If a file is missing copy it over from a XP Professional system and retry the installation –> if all files are there the installation should succeed.
Written by Wolfgang Unger
November 4, 2008 at 18:04
Posted in Windows XP Embedded
Driverinstallation cannot find files
When you install drivers under XP Embedded you get the error message that the system cannot find a specific needed file.
This is a normal behavior in XP Embedded and can happen even if the files are already located in the correct folders.
Just click browse and search for the following filetypes in the following folders.
| .sys | Windowssystem32drivers |
| .dll | Windowssystem32 |
| .drv | Windowssystem32 |
If a file is not there just copy it over from an XP Professional system or extract it from the Repository folder.
You should also setup a filter in Target Designer to search for the missing file and include the component for the next build.
Written by Wolfgang Unger
November 4, 2008 at 17:50
Posted in Windows XP Embedded
