Windows Embedded Blog

Archive for the ‘Windows XP Embedded’ Category

New Windows Embedded Tool: Driver Injector

with one comment

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

PowerPoint Viewer 2007 – can’t load PPTX files

leave a comment »

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”

image

 

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

POSReady 2009 and BGInfo – missing Network information

with one comment

imageIf 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

Driver Extractor for XP Embedded and Windows Embedded Standard

leave a comment »

Download is available on the Elbacom Techblog (v0.9)

imageDriver 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

  1. 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!
  2. Check the devices for which you want to export the drivers.
    image
  3. Click Actions / Export Selected.
    image
  4. Choose an output directory. The tool will create a separate folder for each component named by the devices name.
    image
  5. Import the component (located in the output directoryDevicenamesld directory) into the Database by using the Component Database Manager
    image imageimage 
  6. 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

image 

image Refreshes the device list

image  Shows the needed driver files for the current selected device

image Exports the drivers for the selected devices

image Opens the Windows properties for the current selected device

Download is available on the Elbacom Techblog (v0.9)

Written by Wolfgang Unger

October 12, 2009 at 11:53

Enhanced Write Filter – Installation Batch File

with 3 comments

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.

  1. Create a folder named ewfinstall
  2. Download the Windows Server 2003 Resource Kit
  3. Copy the Regini.exe from the Resource Kit to the ewfinstall folder
  4. Start Target Designer
  5. Add Enhanced Write Filter component
  6. Add EWF Manager Console application component
  7. Add EWF NTLDR component
  8. Add Misc. Command Line Tools component
  9. Build the image to any folder
  10. copy the following files to the ewfinstall folderimage
    1. Windowsinfewf.ini
    2. Windowssystem32ewfdll.dll
    3. Windowssystem32ewfinit.dll
    4. Windowssystem32ewfmgr.exe
    5. Windowssystem32driversewf.sys
    6. ntldr
    7. Windowssystem32reg.exe
  11. Create a new textfile in notepad, paste the following and save it to the ewfinstall folder with the name EWF_Reg_Config.txt

    registrymachine
         SYSTEM
             CurrentControlSet
                 Enum
                     Root [1 5 7 14 17]

  12. Create a file named ewf.reg in the ewfinstall folder and paste the following content

    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

  13. Create a ewfinstall.bat file in the ewfinstall folder and paste the following content

@echo off

echo ————————-
echo EWF Installer
echo created by Wolfgang Unger
echo ————————-

if "%1"=="" GOTO ARG_ERROR
if "%2"=="" GOTO ARG_ERROR

echo 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.txt

echo Importing registry data…
reg import ewf.reg
reg add  "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFParametersProtectedVolume0" /v ArcName /t REG_SZ /d %2 /f

echo 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

Creating and deploying images using WAIK and imagex

with 2 comments

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.

  1. Create a new dialup connection – the settings like number, etc. are not important.
  2. 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.
  3. 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

  1. Boot the target machine from the previous created media.
  2. 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.
  3. 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

    1. 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

    1. 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

    1. Run the following command to deploy the image from the network share
      imagex /apply n:image.wim 1 c:
    2. Reboot your machine – it should now boot from the image properly.

    Written by Wolfgang Unger

    January 29, 2009 at 16:15

    How to integrate/remove EWF in a running XPe image

    with 3 comments

    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

    Cannot access CD/DVD drive with Windows Explorer

    leave a comment »

    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

    Driverinstallation in XP Embedded fails with message “problem installing error occurred. A service installation section in this INF is invalid”

    with 2 comments

    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

    Driverinstallation cannot find files

    leave a comment »

    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