How to Take Advantage of Footprint Reduction in Windows XP Embedded Service Pack 2 Feature Pack 2007

8/22/2007

Microsoft Corporation.

November 2006.

Summary

Learn how to take advantage of component re-factoring to reduce the footprint of the Windows XP Embedded run-time image when upgrading an existing target device configuration file from Windows XP Embedded Service Pack 2 to Windows XP Embedded Service Pack 2 Feature Pack 2007.

Applies To

Windows XP Embedded Service Pack 2 Feature Pack 2007 systems.

Introduction

Re-factored Components

Removing Unnecessary Components

Known Changes in Component Dependencies

Internet Explorer 6 Re-factoring and Footprint Reduction

Other Key Re-factored Components for Footprint Reduction

Conclusion

Introduction

Many components in Windows XP Embedded Service Pack 2 Feature Pack 2007 are re-factored to reduce unnecessary dependencies. The paper discusses key component re-factoring and provides the procedure for removing unneeded components from the Windows XP Embedded run-time image when upgrading an existing target device configuration file from Windows XP Embedded Service Pack 2 to Windows XP Embedded Service Pack 2 Feature Pack 2007.

Re-factored Components

Many Windows XP Embedded Service Pack 2 Feature Pack 2007 components are enhanced to remove unused dependencies or to factor out binaries that benefit other features. Key components re-factored in Windows XP Embedded Service Pack 2 Feature Pack 2007 include:

  • .NET Framework 1.1
  • Administration Support Tools
  • Certificate Request Client & Certificate Autoenrollment
  • COM Base
  • Common File Dialogs
  • Compression and Expansion Tools
  • Core Certificate Services
  • Credential Management User Interface
  • DHCP Monitor Library
  • Dialer Application
  • Explorer Application
  • Help and Support Services
  • HTML Rendering Engine
  • IIS FTP Server
  • IIS Internet Manager
  • IIS Web Server
  • IMAPI - CD Burning
  • Internet Connection Wizard
  • Internet Explorer 6
  • Microsoft Foundation Class Library (Legacy)
  • Microsoft Vector Graphics Rendering (VML)
  • Msxml 3.1
  • Multicast DHCP
  • Netbios over TCP/IP
  • Netlogon/NetJoin
  • Netshell
  • Network Configuration
  • Outlook Express
  • Peer to Peer Networking
  • Remote Access Monitor
  • Remote Assistance Channel
  • Shell Namespace Extensions
  • Simple Network Management Protocol (SNMP)
  • Smart Card Cryptographic Service Providers
  • Soap Client Runtime
  • Telnet Server Administration
  • Terminal Server Client
  • Terminal Services Runtime
  • Urlmon Library
  • Users Control Panel
  • Volume Shadow Copy Service
  • Windows .Net Messenger
  • Windows Firewall/Internet Connection Sharing (ICS)
  • Windows Media Player 9.0
  • Windows Movie Maker
  • Windows NT MARTA Provider
  • Windows Script Engines
  • Wininet Library
  • WMI Core

Removing Unnecessary Components

For new Windows XP Embedded Service Pack 2 Feature Pack 2007 target device configurations, the check dependencies command in Target Designer automatically reduces the Windows XP Embedded run-time image footprint as components are added. No special procedures are needed.

In contrast, Target Designer does not automatically remove now-obsolete dependencies when upgrading an existing target device configuration (.slx) file from Windows XP Embedded Service Pack 2 to Windows XP Embedded Service Pack 2 Feature Pack 2007. For target device configuration upgrades, manually remove unnecessary dependencies to construct a run-time image with a smaller footprint.

For example, in Windows XP Embedded Service Pack 2 Feature Pack 2007, the WMI Core component no longer depends on the Volume Shadow Copy Service component. When upgrading an existing target device configuration, use the enhanced Windows XP Embedded Service Pack 2 Feature Pack 2007 component database package to reduce the run-time image footprint by manually removing the Volume Shadow Copy Service Administrator component and all of its associated dependencies as follows:

+Volume Shadow Copy Service

++Indexing Service

+++Filter Mime Messages for the Indexing Service

++Removable Storage Service

After manually removing the Volume Shadow Copy Service component and the components on which it depends, run the Target Designer check dependencies command to ensure that the components are safely removed. If the removed components reappear in the configuration after check dependencies executes, then other features or components depend on them.

The following procedure specifies how to identify and remove obsolete dependencies when upgrading an existing target device configuration file from Windows XP Embedded Service Pack 2 to Windows XP Embedded Service Pack 2 Feature Pack 2007.

Using XPECMD to Identify and Remove Obsolete Dependencies

No automated tool is provided to remove unnecessary component dependences when upgrading an existing target device configuration file from Windows XP Embedded Service Pack 2 to Windows XP Embedded Service Pack 2 Feature Pack 2007.

However, Windows XP Embedded Service Pack 2 Feature Pack 2007 includes a new command-line tool, XPECMD, to query component dependencies in the Windows XP Embedded component database. Use XPECMD to identify and remove obsolete component dependencies.

XPECMD is written in VBScript and requires Microsoft Windows Script Host (CScript) to run. XPECMD is located in the Program Files\Windows Embedded\bin folder. For more information on how to use XPECMD, please refer to Windows XP Embedded Service Pack 2 Feature Pack 2007 Help.

For each component listed in Refactored Components, first use XPECMD to identify its previous and current dependencies, then manually remove obsolete dependencies.

To use XPECMD to Identify and Remove Obsolete Dependencies for a Component

  1. Using the Command Prompt, run the following command to generate the dependency tree for the component at its previous revision number:

    XPECMD> DEPTREE /4 ‘comp:component name|revision number’
    

    where component name is the name of the component in Target Designer and where revision number is the revision number in the previous configuration, for example, R2890 for Windows XP Embedded Service Pack 2.

  2. Using the Command Prompt, run the following command to generate the dependency tree for the component at the Windows XP Embedded Service Pack 2 Feature Pack 2007 revision number (that is, R3333):

    XPECMD> DEPTREE /4 ‘comp:component name|R3333’
    

    where component name is the name of the component in Target Designer

  3. Examine the difference in the dependency trees to identify changes in the component dependencies introduced in the upgrade to Windows XP Embedded Service Pack 2 Feature Pack 2007. In Target Designer, manually remove those dependencies rendered obsolete in Windows XP Embedded Service Pack 2 Feature Pack 2007.

  4. Removed dependencies may themselves be dependent on other components. For each removed component, repeat steps 1 through 3 until all unnecessary component dependencies are eliminated from the configuration.

After completing the procedure for all relevant components, run Check Dependencies in Target Designer to confirm that the dependencies have been removed properly. If other components in the target configuration depend on the removed components, Target Designer automatically adds them back into the target configuration.

Known Changes in Component Dependencies

The procedure for identifying obsolete components described in Using XPECMD to Identify and Remove Obsolete Dependencies may be tedious and time consuming. To simplify the task of reducing the run-time image footprint when upgrading an existing target device configuration file, the following table provides a list of key components with dependencies removed from, and newly-added to, Windows XP Embedded Service Pack 2 Feature Pack 2007

Please note that this is not a complete list of components, but it does indicate where most footprint reduction activity is concentrated. This list is generated using the XPECMD tool as described in Using XPECMD to Identify and Remove Obsolete Dependencies.

Component Removed Dependencies Added Dependencies

.NET Framework 1.1

+> Internet Explorer

+> Primitive: ACTXPRXY.DLL

Administration Support Tools

None

+> Primitive: Localsec.dll

Certificate Request Client & Certificate Autoenrollment

+> Active Template Library (ATL)

+> Common Control Libraries Version 5

+> Core Certificate Services

+> Local Security Authority Subsystem (LSASS)

+> Primitive: Dnsapi

+> Primitive: Msasn1

+> Primitive: Netrap

+> Primitive: Security

+> Primitive: Shell32

+> Primitive: Userenv

+> Primitive: Version

+> Primitive: Wintrust

+> Primitive: Ws2_32

+> Primitive: Wtsapi32

+> Primitive: Xenroll

+> Security Accounts Manager Client

+> Windows API - GDI

+> Wininet Library

None

COM Base

+> Primitive: Crypt32

+> Primitive: Mpr

+> Primitive: Netapi32

+> Primitive: Oleaut32

+> Primitive: Secur32

+> Primitive: Shell32

+> Primitive: Userenv

+> Urlmon Library

None

Common File Dialogs

+> Primitive: uxtheme

+> Primitive: Winspool

None

Compression and Expansion Tools

+> Group: Kernel [Version 5.1.2600.2180, R2890]

+> Primitive: lz32.dll

Core Certificate Services

+> Common Control Libraries Version 5

+> Primitive: CryptUI

+> Primitive: Imagehlp

+> Primitive: Msasn1

+> Primitive: Shell32

+> Primitive: Userenv

+> Primitive: Xenroll

None

Credential Management User Interface

+> Common Control Libraries Version 5

+> Primitive: Crypt32

+> Primitive: CryptUI

+> Primitive: Dnsapi

+> Primitive: Netapi32

+> Primitive: Ole32

+> Primitive: Secur32

+> Primitive: Shlwapi

+> Wininet Library

None

DHCP Monitor Library

+> Primitive: Mprapi

+> Primitive: Rasapi32

None

Dialer Application

+> Outlook Express

+> Primitive: wab32

Explorer Application

+> Common Control Libraries Version 5

+> Common File Dialogs

+> Primitive: Cfgmgr32

+> Primitive: Setupapi

+> Primitive: Winmm

+> Primitive: Winsta

+> Primitive: Wtsapi32

+> Windows XP Service Pack 2 Resource DLL

None

Help and Support Services

+> Internet Explorer

+> Windows Media Player 9.0

+> Windows Product Activation Notification

+> Help Center and Services"

+> Primitive: HLINK.DLL"

+> Primitive: IEINFO5.OCX"

+> Windows Media Player 10"

(Please note that Help Center and Services is a new component created as part of re-factoring for Help and Support Services)

HTML Rendering Engine

+> Internet Explorer

+> Primitive: INSENG.DLL

IIS FTP Server

+> Simple Network Management Protocol (SNMP)

+> Primitive: snmpapi.dll

IIS Internet Manager

+> FBA: Optional Components

+> Common Control Libraries Version 5

+> Outlook Express

+> Rich Edit Control Version 3.0

None

IIS Web Server

+> Simple Network Management Protocol (SNMP)

+> Primitive: snmpapi.dll

IMAPI - CD Burning

+> Internet Explorer

+> Primitive: ACTXPRXY.DLL

Internet Connection Wizard

+> Internet Explorer

+> Primitive: iedkcs32.dll

+> Primitive: IEXPLORE.EXE

Internet Explorer

+> Base Support Binaries

+> Compression and Expansion Tools

+> Fonts: Fonts Arial

+> Fonts: Fonts Microsoft_San_Serif

+> Fonts: Fonts Tahoma

+> Fonts: Fonts verdana

+> Fonts: Fonts webdings

+> Fonts: Fonts wingdings

+> Mapi32 Libraries

+> Microsoft Foundation Class Library (Legacy)

+> Microsoft Foundation Class Library (MFC)

+> Microsoft Line Services

+> Primitive: Browseui

+> Primitive: Cdfview

+> Primitive: Comcat

+> Primitive: Icfgnt5

+> Primitive: Iphlpapi

+> Primitive: Mpr

+> Primitive: Msvcrt40

+> Primitive: Security

+> Primitive: Sendmail

+> Primitive: Setupapi

+> Primitive: Tapi32

+> Primitive: Userenv

+> Primitive: uxtheme

+> Primitive: Winmm

+> Protected Storage Service

+> Windows Script Engines

+> Primitive: ACTXPRXY.DLL

+> Primitive: cryptdlg.dll

+> Primitive: DXTRANS.DLL

+> Primitive: HLINK.DLL

+> Primitive: iedkcs32.dll

+> Primitive: IEINFO5.OCX

+> Primitive: IEXPLORE.EXE

+> Primitive: IMGUTIL.DLL

+> Primitive: INETCPL.CPL

+> Primitive: INSENG.DLL

+> Primitive: JSPROXY.DLL

+> Primitive: MSHTA.EXE

+> Primitive: MSIDENT.DLL

+> Primitive: MSIDNTLD.DLL

+> Primitive: MSRATING.DLL

+> Internet Explorer Version Information

Microsoft Foundation Class Library (Legacy)

+> Common Control Libraries Version 5

+> Common File Dialogs

+> Ole Automation

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Primitive: Shell32

+> Win32 API - Advanced

None

Microsoft Vector Graphics Rendering (VML)

+> Internet Explorer

None

Msxml 3.1

+> Local Security Authority Subsystem (LSASS)

+> Primitive: Advpack

+> Primitive: Crypt32

+> Primitive: Mlang

+> Primitive: Ntdll

+> Primitive: Oleaut32

+> Primitive: Security

+> Primitive: Version

+> Primitive: Ws2_32

+> Primitive: Wsock32

+> Urlmon Library

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - User

+> Wininet Library

None

Multicast DHCP

+> Routing Common Files

None

Netbios over TCP/IP

+> Primitive: Icmp

+> Primitive: Wsock32

+> Windows API - User

None

Netlogon/NetJoin

+> Primitive: Shell32

+> Primitive: Secur32

+> Primitive: Userenv

+> Active Template Library (ATL)

+> Primitive: Crypt32

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Primitive: Security

+> Primitive: CryptUI

+> Primitive: CertCli

+> Primitive: Version

+> Primitive: Msasn1

+> MSFS

+> Primitive: Sclgntfy

+> Multi-Protocol Router Service Messages Library

+> Workstation Service

None

Netshell

+> DHCP Client Service

+> Primitive: Devmgr

+> Primitive: Dnsapi

+> Primitive: Mprapi

+> Primitive: Netapi32

+> Primitive: Netcfgx

+> Primitive: Rasapi32

+> Primitive: Setupapi

+> Primitive: Winspool

None

Network Configuration

+> Primitive: Crypt32

+> Primitive: Netcfgx

+> Primitive: NetClass

+> Primitive: Netman

+> Primitive: Oleaut32

+> Primitive: Secur32

+> Primitive: Shlwapi

+> Primitive: Winsta

+> Primitive: Wmi

+> Primitive: Wtsapi32

+> Routing Common Files

+> RPC Local Support

+> Windows API - Advanced

+> Windows API - User

None

Outlook Express

+> Internet Explorer

+> Media Files

+> Msxml Libraries

+> Netshell

+> Primitive: Crypt32

+> Primitive: CryptUI

+> Primitive: Msasn1

+> Primitive: Msi

+> Primitive: Rasapi32

+> Primitive: Shdocvw

+> Primitive: Winmm

+> Primitive: Wintrust

+> Primitive: Wldap32

+> Primitive: Wsock32

+> Protected Storage Service

+> Rich Edit Control Version 1.0

+> Urlmon Library

+> Wininet Library

+> Primitive: cryptdlg.dll

+> Primitive: HLINK.DLL

+> Primitive: IEXPLORE.EXE

+> Primitive: INETCPL.CPL

+> Primitive: MSIDENT.DLL

+> Primitive: msoert2

+> Primitive: Shdoclc

+> Primitive: wab32

Peer to Peer Networking

+> NDIS Tunnel Miniport Driver

+> NetIP6 Inf

+> Simple Network Management Protocol (SNMP)

+> TCP/IP Version 6

+> Windows XP Service Pack 2 OOB Resource DLL

None

Remote Access Monitor

+> Primitive: Rasapi32

None

Remote Assistance Channel

+> Help and Support Services

+> Help Center and Services

Shell Namespace Extensions

+> Common Control Libraries Version 5

+> Explorer Application

+> Internet Explorer

+> Primitive: Mpr

+> Primitive: Rundll32

+> Wininet Library

+> Primitive: MSRATING.DLL

Simple Network Management Protocol (SNMP)

None

+> Primitive: snmpapi.dll

Smart Card Cryptographic Service Providers

+> Primitive: Setupapi

+> Primitive: Userenv

+> Primitive: Winmm

+> Primitive: Winspool

+> Primitive: Winsta

None

Soap Client Runtime

+> Internet Explorer

None

Telnet Server Administration

+> Common Control Libraries Version 5

+> Primitive: Shell32

+> Primitive: Winspool

+> Windows API - GDI

None

Terminal Server Client

+> Primitive: Winmm

+> Primitive: Winspool

None

Terminal Services Runtime

+> Primitive: Wtsapi32

None

Urlmon Library

+> Primitive: Ntdll

None

Users Control Panel

None

+> Microsoft Management Console (MMC)"

+> Primitive: Localsec.dll"

+> Primitive: MSHTA.EXE"

+> Windows Picture and Fax Viewer"

Volume Shadow Copy Service

None

+> Primitive: vssapi.dll

Windows .Net Messenger

+> Internet Explorer

+> Windows Firewall/Internet Connection Sharing (ICS)

+> Windows Script Engines

+> Packet Scheduler Miniport

+> Primitive: HNETCFG.DLL

+> Primitive: jscript.dll

+> Primitive: JSPROXY.DLL

+> Quality of Service RSVP

Windows Firewall/Internet Connection Sharing (ICS)

+> Common Control Libraries Version 5

+> Common File Dialogs

+> DHCP Client Service

+> Netshell

+> Primitive: Dnsapi

+> Primitive: Iphlpapi

+> Primitive: Mprapi

+> Primitive: Msasn1

+> Primitive: Netapi32

+> Primitive: Rasapi32

+> Primitive: Shell32

+> Primitive: Shlwapi

+> Service Control Manager (SCM)

+> TCP/IP Networking

+> Windows API - GDI

+> Windows XP Service Pack 2 OOB Resource DLL

+> Windows XP Service Pack 2 Resource DLL

+> Wininet Library

+> Primitive: HNETCFG.DLL

Windows Media Player 9.0

(Upgraded to Windows Media Player 10)

None

Windows Movie Maker

+> Internet Explorer

+> Windows Media Player 9.0

+> Primitive: DXTRANS.DLL

+> Windows Media Player 10

Windows NT MARTA Provider

+> Local Security Authority Subsystem (LSASS)

+> Primitive: Dnsapi

+> Primitive: Netapi32

+> Primitive: Netrap

+> Primitive: Secur32

+> Primitive: Shlwapi

+> Primitive: Winspool

+> Primitive: Ws2_32

+> Primitive: Ws2Help

+> Primitive: Wsock32

+> Windows API - GDI

None

Windows Script Engines

+> Group: Kernel [Version 5.1.2600.2180, R2890]

+> RPC Local Support

+> Urlmon Library

+> Primitive: jscript.dll

+> Primitive: vbscript.dll

+> Primitive: Mlang

Wininet Library

+> Primitive: Ntdll

None

WMI Core

+> Primitive: AuthZ

+> Primitive: Netapi32

+> Primitive: Psapi

+> Volume Shadow Copy Service

+> Windows API - GDI

+> Primitive: vssapi.dll

After removing the first level of dependencies listed in the table above, optionally remove the associated second-level dependencies, which are listed in the table below. The second level dependencies listed are discovered using the XPECMD tool on Windows XP Embedded component databases prior to FP2007.

First Level Component Removed Second Level Dependencies

Active Template Library (ATL)

+> Visual C++ Runtime Libraries (SideX Side)

+> Microsoft Visual C++ Run Time

+> Ole Automation

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

Base Support Binaries

+> Common Control Libraries Version 5

+> Common File Dialogs

+> Microsoft Visual C++ Run Time

+> Primitive: Cabinet

+> Primitive: Ntdll

+> Primitive: Olecli32

+> Primitive: Olesvr32

+> Primitive: Rundll32

+> Primitive: Shdocvw

+> Primitive: Shell32

+> Primitive: Shlwapi

+> Primitive: Version

+> Shell Group Conversion Registry Data

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

+> Wininet Library

Common Control Libraries Version 5

+> Common Control Libraries Version 6

+> Primitive: Ntdll

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

Common File Dialogs

+> Common Control Libraries Version 5

+> Primitive: Ntdll

+> Primitive: Shell32

+> Primitive: Shlwapi

+> Primitive: uxtheme

+> Primitive: Winspool

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

Compression and Expansion Tools

+> Group: Kernel [Version 5.1.2600.2180, R2890]

+> Microsoft Visual C++ Run Time

+> Primitive: Cabinet

+> Primitive: Ntdll

+> Win32 API - Kernel

+> Win32 API - User

Core Certificate Services

+> Common Control Libraries Version 5

+> Microsoft Visual C++ Run Time

+> Primitive: CertCli

+> Primitive: Crypt32

+> Primitive: CryptUI

+> Primitive: Esent

+> Primitive: Imagehlp

+> Primitive: Msasn1

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Shell32

+> Primitive: Userenv

+> Primitive: Version

+> Primitive: Wintrust

+> Primitive: Xenroll

+> RPC Local Support

+> Windows API - Advanced

+> Windows API - Kernel

+> Windows API - User

+> Wininet Library

DHCP Client Service

+> Microsoft Visual C++ Run Time

+> Primitive: Dnsapi

+> Primitive: Iphlpapi

+> Primitive: Ntdll

+> Primitive: Secur32

+> Primitive: Ws2_32

+> RPC Local Support

+> Windows API - Advanced

+> Windows API - Kernel

+> Windows API - User

Internet Explorer

+> Active Template Library (ATL)

+> Base Support Binaries

+> CodePage: 28591 (ISO 8859-1 Latin I)

+> Common Control Libraries Version 5

+> Common File Dialogs

+> Compression and Expansion Tools

+> DirectDraw

+> DirectDrawEx

+> Down-level Shell Compat

+> Fonts: Fonts Arial

+> Fonts: Fonts Microsoft_San_Serif

+> Fonts: Fonts Tahoma

+> Fonts: Fonts verdana

+> Fonts: Fonts webdings

+> Fonts: Fonts wingdings

+> HTML Rendering Engine

+> Mapi32 Libraries

+> Microsoft Foundation Class Library (Legacy)

+> Microsoft Foundation Class Library (MFC)

+> Microsoft Line Services

+> Microsoft Visual C++ Run Time

+> Primitive: Advpack

+> Primitive: Browselc

+> Primitive: Browseui

+> Primitive: Cdfview

+> Primitive: Comcat

+> Primitive: Crypt32

+> Primitive: Digest

+> Primitive: Fixmapi

+> Primitive: Icfgnt5

+> Primitive: Iphlpapi

+> Primitive: Mlang

+> Primitive: Mpr

+> Primitive: Msvcrt40

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Primitive: Security

+> Primitive: Sendmail

+> Primitive: Setupapi

+> Primitive: Shdoclc

+> Primitive: Shdocvw

+> Primitive: Shell32

+> Primitive: Shlwapi

+> Primitive: Shmgrate

+> Primitive: Tapi32

+> Primitive: Userenv

+> Primitive: uxtheme

+> Primitive: Version

+> Primitive: Winmm

+> Primitive: Winspool

+> Primitive: Wintrust

+> Primitive: Ws2_32

+> Primitive: Wsock32

+> Protected Storage Service

+> RPC Local Support

+> Shell Namespace Extensions

+> Urlmon Library

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

+> Windows Script Engines

+> Wininet Library

Local Security Authority Subsystem (LSASS)

+> Lightweight Directory Access Protocol (LDAP) client

+> Microsoft Visual C++ Run Time

+> NPFS

+> Primitive: AuthZ

+> Primitive: Crypt32

+> Primitive: Cryptdll

+> Primitive: Dnsapi

+> Primitive: Esent

+> Primitive: Iphlpapi

+> Primitive: Ksecdd

+> Primitive: Mpr

+> Primitive: Msasn1

+> Primitive: Msctf

+> Primitive: Msvcrt40

+> Primitive: Netapi32

+> Primitive: Ntdll

+> Primitive: Secur32

+> Primitive: Userenv

+> Primitive: Wldap32

+> Primitive: Ws2_32

+> RPC Local Support

+> RPC Server

+> Security Accounts Manager Client

+> Security Accounts Manager Server Library

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

+> Windows NT MARTA Provider

Mapi32 Libraries

+> Primitive: Ntdll

+> Win32 API - Advanced

+> Win32 API - Kernel

+> Win32 API - User

Microsoft Foundation Class Library (Legacy)

+> Common Control Libraries Version 5

+> Common File Dialogs

+> Microsoft Visual C++ Run Time

+> Ole Automation

+> Primitive: Msvcrt40

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Primitive: Shell32

+> Win32 API - Advanced

+> Win32 API - GDI

+> Win32 API - Kernel

+> Win32 API - User

Microsoft Foundation Class Library (MFC)

+> Microsoft Visual C++ Run Time

+> Primitive: Ntdll

+> Visual C++ Runtime Libraries (Side X Side)

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

Msxml Libraries

+> Msxml 3.1

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Primitive: Shlwapi

+> Urlmon Library

+> Windows API - Advanced

+> Windows API - Kernel

+> Windows API - User

+> Wininet Library

Multi-Protocol Router Service Messages Library

+> Primitive: Mpr

+> Primitive: Mprapi

+> Primitive: Ntdll

+> Windows API - Kernel

NDIS Tunnel Miniport Driver

+> Ndis

Netshell

+> Active Template Library (ATL)

+> Credential Management User Interface

+> DHCP Client Service

+> Microsoft Visual C++ Run Time

+> Primitive: Crypt32

+> Primitive: Devmgr

+> Primitive: Dnsapi

+> Primitive: Iphlpapi

+> Primitive: Mprapi

+> Primitive: Msimg32

+> Primitive: Netapi32

+> Primitive: Netcfgx

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Primitive: Rasapi32

+> Primitive: Setupapi

+> Primitive: Shell32

+> Primitive: Shlwapi

+> Primitive: uxtheme

+> Primitive: Winspool

+> Primitive: Ws2_32

+> Routing Common Files

+> RPC Local Support

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

+> WinHTTP

+> Wireless Zero Configuration

Ole Automation

+> Microsoft Visual C++ Run Time

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

Outlook Express

+> Active Template Library (ATL)

+> Common Control Libraries Version 5

+> Common File Dialogs

+> Internet Connection Wizard

+> Internet Explorer

+> Mapi32 Libraries

+> Media Files

+> Microsoft Visual C++ Run Time

+> Msxml Libraries

+> Netshell

+> Primitive: Crypt32

+> Primitive: CryptUI

+> Primitive: Fixmapi

+> Primitive: Mlang

+> Primitive: Msasn1

+> Primitive: Msi

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Primitive: Rasapi32

+> Primitive: Shdocvw

+> Primitive: Shell32

+> Primitive: Shlwapi

+> Primitive: Shmgrate

+> Primitive: Version

+> Primitive: Winmm

+> Primitive: Wintrust

+> Primitive: Wldap32

+> Primitive: Wsock32

+> Protected Storage Service

+> Rich Edit Control Version 1.0

+> Urlmon Library

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

+> Wininet Library

Protected Storage Service

+> Active Template Library (ATL)

+> Microsoft Visual C++ Run Time

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Pstorsvc

+> RPC Local Support

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

Rich Edit Control Version 1.0

+> Rich Edit Control Version 3.0

+> Win32 API - User

Rich Edit Control Version 3.0

+> Microsoft Line Services

+> Microsoft Visual C++ Run Time

+> Primitive: Ntdll

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

Routing Common Files

+> Microsoft Visual C++ Run Time

+> Primitive: Ntdll

+> Windows API - Advanced

+> Windows API - Kernel

+> Windows API - User

RPC Local Support

+> Named pipe file system

+> Primitive: Ntdll

+> Windows API - Advanced

+> Windows API - Kernel

Security Accounts Manager Client

+> Primitive: Ntdll

+> RPC Local Support

+> SAM Server

+> Windows API - Advanced

+> Windows API - Kernel

+> Windows API - User

Service Control Manager (SCM)

+> Local Security Authority Subsystem (LSASS)

+> Microsoft Visual C++ Run Time

+> Primitive: Ncobjapi

+> Primitive: Ntdll

+> Primitive: Umpnpmgr

+> Primitive: Userenv

+> RPC Local Support

+> Windows API - Advanced

+> Windows API - Kernel

+> Windows API - User

+> Windows Security Configuration Editor Engine

Simple Network Management Protocol (SNMP)

+> Active Template Library (ATL)

+> Common Control Libraries Version 5

+> Event Log

+> Microsoft Foundation Class Library (MFC)

+> Microsoft Management Console (MMC)

+> Microsoft Visual C++ Run Time

+> Primitive: Iphlpapi

+> Primitive: Netapi32

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Primitive: Winspool

+> Primitive: Ws2_32

+> Primitive: Wsock32

+> Remote Registry Service

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

TCP/IP Version 6

+> Ndis

+> NDIS Tunnel Miniport Driver

+> NetIP6 Inf

+> Network Configuration

+> Primitive: Ntdll

+> Primitive: Ws2_32

+> TCP/IP Networking

+> Transport Driver Interface

+> Windows API - Kernel

+> Windows API – User

Urlmon Library

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Shlwapi

+> Primitive: Version

+> RPC Local Support

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

Volume Shadow Copy Service

+> Active Template Library (ATL)

+> COM+ Services

+> I/O Error Log Messages

+> Indexing Service

+> Microsoft Visual C++ Run Time

+> Msxml 3.1

+> NTFS

+> Primitive: Clbcatq

+> Primitive: Esent

+> Primitive: Netapi32

+> Primitive: Ntdll

+> Primitive: Odbc32

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Primitive: Setupapi

+> Primitive: Shlwapi

+> Primitive: Version

+> Removable Storage Service

+> RPC Local Support

+> Standard Template Libraries (STL)

+> Windows API - Advanced

+> Windows API - Kernel

+> Windows API - User

Windows API - Advanced

+> Primitive: Ntdll

+> RPC Local Support

+> Windows API - Kernel

+> Windows Subsystem

Windows API - GDI

+> Font: Marlett

+> Fonts: Fonts Microsoft_San_Serif

+> Fonts: Fonts Tahoma

+> Fonts: Fonts tahoma_bold

+> Fonts: Western Europe font substitute

+> Microsoft Visual C++ Run Time

+> NLS: Core Files

+> Primitive: Dxg

+> Primitive: Dxgthk

+> Primitive: Mscms

+> Primitive: Msimg32

+> Primitive: Ntdll

+> Primitive: Version

+> Primitive: Winspool

+> Windows API - Advanced

+> Windows API - Kernel

+> Windows API - User

+> Windows Subsystem

Windows API - User

+> Primitive: Dxapi.sys

+> Primitive: Imm32

+> Primitive: Msimg32

+> Primitive: Ntdll

+> Primitive: Version

+> Primitive: Winsta

+> VGA Save

+> Windows API - GDI

+> Windows API - Kernel

+> Windows Subsystem

Windows Product Activation Notification

+> Microsoft Visual C++ Run Time

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Primitive: Shell32

+> Primitive: Shlwapi

+> Windows API - Advanced

+> Windows API - Kernel

+> Windows API - User

Windows Script Engines

+> Group: Kernel [Version 5.1.2600.2180, R2890]

+> COM Base

+> Common Control Libraries Version 5

+> Common File Dialogs

+> Microsoft Foundation Class Library (MFC)

+> Microsoft Visual C++ Run Time

+> Ole Automation

+> Primitive: Crypt32

+> Primitive: Imm32

+> Primitive: Mpr

+> Primitive: Ntdll

+> Primitive: Ole32

+> Primitive: Oleaut32

+> Primitive: Shell32

+> Primitive: Shlwapi

+> Primitive: Version

+> Primitive: Winspool

+> RPC Local Support

+> Urlmon Library

+> Windows API - Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API - User

Windows XP Service Pack 2 OOB Resource DLL

(none)

Windows XP Service Pack 2 Resource DLL

+> Windows XP Service Pack 1 Resource DLL

Wininet Library

+> Microsoft Visual C++ Run Time

+> Primitive: Crypt32

+> Primitive: Ntdll

+> Primitive: Oleaut32

+> Primitive: Shlwapi

+> Windows API - Advanced

+> Windows API - Kernel

+> Windows API - User

Workstation Service

+> Common File Dialogs

+> FBA: Net Common

+> Microsoft Visual C++ Run Time

+> Primitive: Netapi32

+> Primitive: Netrap

+> Primitive: Ntdll

+> Primitive: Rdbss

+> RPC Local Support

+> Security Accounts Manager Client

+> SMB Redirector

+> Windows API – Advanced

+> Windows API - GDI

+> Windows API - Kernel

+> Windows API – User

Group: Kernel [Version 5.1.2600.2180, R2890]

(Note: This is a dependency group. The individual dependencies are listed in the column to the right)

+> Disk Management Basic Volume Runtime

+> File system recognizer

+> NT Hardware Detect

+> PnP (Kernel-mode)

+> VGA Boot Driver

Internet Explorer 6 Re-factoring and Footprint Reduction

Internet Explorer 6 is the component perhaps most significantly re-factored for footprint reduction. Let's examine the key changes to the Internet Explorer 6 component and what other features benefit significantly in footprint reduction from this effort.

Many features in Windows XP Embedded depend on Internet Explorer, including the following:

  • .NET Framework 1.1
  • Help and Support Services
  • HTML Rendering Engine
  • IMAPI - CD Burning
  • Internet Connection Wizard
  • Microsoft Vector Graphics Rendering (VML)
  • Outlook Express
  • Shell Namespace Extensions
  • Soap Client Runtime
  • Windows .Net Messenger
  • Windows Media Player 10.0
  • Windows Media Player 9.0
  • Windows Movie Maker

Those features have either a static or delay load dependency on one or more files of the dozens owned by the Internet Explorer 6 component. Those dependent files were removed from the Internet Explorer component and made into their own individual Primitive components. The files removed from Internet Explorer component include the following:

  • ACTXPRXY.DLL
  • Cryptdlg.dll
  • DXTRANS.DLL
  • HLINK.DLL
  • Iedkcs32.dll
  • IEINFO5.OCX
  • IEXPLORE.EXE
  • IMGUTIL.DLL
  • INETCPL.CPL
  • INSENG.DLL
  • JSPROXY.DLL
  • MSHTA.EXE
  • MSIDENT.DLL
  • MSIDNTLD.DLL
  • MSRATING.DLL

Internet Explorer 6 now depends on these new primitives. Other higher-level features such as .NET Framework 1.1 and Help and Support Services now also depend on just a few of these Primitive components instead of on the Internet Explorer 6 component itself. The result is a reduced run-time image footprint. For full Internet Explorer 6 functionality add the Internet Explorer 6 component to your target configuration.

Depending upon the features selected in the target configuration, certain platform build scenarios without a fully functional Internet Explorer 6 feature may achieve a footprint reduction of from 3% to over 50%.

Other Key Re-factored Components for Footprint Reduction

Other key components are re-factored for the benefits of other features, including those in the following table:

Re-factored Component Beneficiary Components

Volume Shadow Copy

WMI Core

Simple Network Management Protocol (SNMP)

IIS FTP Server, IIS Web Server

Outlook Express

Dialer Application, IIS Internet Manager

Help and Support Services

Remote Assistance Channel (for SMS Client scenario)

Administration Support Tools

Users Control Panel

The beneficiary components listed above no longer depend on the re-factored components, but instead depend on only a few primitives factored out of the original components.

Conclusion

The procedures and information provided in this white paper can significantly reduce the run-time image footprint when upgrading an existing target device configuration file from Windows XP Embedded Service Pack 2 to Windows XP Embedded Service Pack 2 Feature Pack 2007.