Windows XP Embedded 中的组件开发通常分为以下几类:
1. 设备驱动程序组件开发;
2. 应用程序组件开发;
3. 自定义壳程序组件开发;
4. 其他组件开发;
    本帖将以Penmount串口触摸屏为例,演示和说明如何把该设备的驱动制作成一个可以集成在XPE开发环境下的一个设备组件。制作该驱动的主要步骤有以下五步:
1. 设备驱动的正确安装:
2. 设备驱动备份:
3. 导入设备驱动文件;
4. 设置和发布该组件;
5. 添加到XPE镜像文件中;
需要准备的软件:
  • Windows优化大师或者智能驱动备份软件;
  • Penmount串口触摸屏驱动文件;
  • Windows XP Embedded 组件设计器(Component Designer);
下面详细说明该组件的开发步骤:
1. 设备驱动的正确安装:
    首先在目标机上安装好Penmount串口触摸屏驱动文件,该文件是以Setup.exe方式进行安装的,如下图所示:
按照默认设置安装好触摸屏驱动程序,这时,就可以通过开始菜单进行触摸屏的校准,同时用手点击触摸屏可以感觉到鼠标的移动。如下图所示:
    注意,如果触摸屏驱动提供了.inf文件的安装方式,则可通过在设备管理器中进行驱动程序的安装,如能安装成功,第二步可以略过;
2. 设备驱动备份:
    通过Windows优化大师或者智能驱动备份,将目标机中的Penmount串口触摸屏驱动文件备份出来,如下图所示:
注意:除了备份设备驱动配置文件(PenMount.inf),还需要把inf需要的相关驱动文件(.sys, .dll)备份出来,同时把需要的辅助应用程序也备份出来。
3. 导入设备驱动文件;
    将备份出来的设备驱动文件整理在一个文件夹中,把该文件夹从目标机拷贝到开发机上,同时打开组件设计器(Component Designer),如下图所示:
通过菜单File->Import..导入备份出来的PenMount.inf驱动配置文件,如下图所示:
导入完成后,观察导入日志,出现红色错误信息 的需要把问题排除,重新导入,一般问题出现主要有三个方面:
(1) 备份出来的驱动文件中,缺少inf文件中需要的某些驱动文件(.sys, .dll),根据提示的信息,在目标机上进行查找,把缺少的文件拷贝到备份的文件夹中再进行导入;
(2) 备份出来的驱动文件中,缺少inf文件中需要的其他驱动文件(.inf),如下图:
根据提示的信息,在目标机上进行查找,把缺少的驱动文件拷贝到备份的文件夹中再进行导入;
(3) 注册表信息错误,XPE中没有目标机上具有的注册表键值,根据提示的信息,手动的在组件中创建相应的注册表文件夹及键值;
    注意:出现的黄色叹号警告信息可以忽略,不会影响组件的功能;
4. 设置和发布该组件;
(1) 导入inf文件成功后,为了便于区分,首先将组件的名称更改为PenMount USB,如下图所示:
(2)   设置该组件的源文件路径,鼠标右键点击Repositories节点,选择Add Repository,在Repository Properties中设置组件仓库的名称(Penmount Files)及源文件所在的路径。如下图所示:
(3)   设置完成后,在Component Properties上设置组件的Repository为刚才新建的组件仓库。如下图所示:
(4)   设置组件路径和分类,点击组件下Group Memberships节点,设置组件所属的分类路径,如下图所示:
该设置代表了该组件在目标设机器中的组件树中的位置,例如该组件的位置在:Hardware->Devices->Human Interface Devices节点下。 
(5) 设置组件需要的文件及安装在目标机下的目录路径,点击组件下的Files节点,可以看到驱动文件已经存在于该节点下,并默认的设置了在目标机上的安装目录。如果我们需要手动的添加相关的文件,例如触摸屏校准程序等辅助应用程序,则需要手动进行添加并设置目标机上所在的路径。如下图所示,在列表空白处点击鼠标右键,选择探出菜单中的Add->Files进行文件添加:
 在弹出的窗体中选择需要添加的文件和安装在目标机上的路径,如下图所示:
(6)   如果驱动需要相关的注册表信息支持,则需要手动添加注册表信息,选择组件下的Registry Data节点,在列表的空白处点击鼠标右键,然后选择Add->Registry Data,如下图所示:
  注意:添加注册表键值的时候,同时要添加这个键值所在的注册表目录,否则键值添加将会失败;
(7)   组件下的Component or Group Dependency一项主要用来设置该组件需要依赖或关联的其他组件支持,例如,该触摸屏为USB接口,则需要相关的USB驱动支持,如下图所示:
(8)   完成组件相关的设置后,鼠标点选组件名称,使焦点停留在该组件的名称上,然后通过菜单Edit->Release Component来发布该组件。如下图所示:
(9)   发布完成后,该组件相关属性则变灰不可更改。点击菜单中Files->Save保存组件,如下图:
(10)   完成组件的开发后,最后需要将该组件导入到组件数据库中,导入方法为点击菜单Tools-> Component Database Manager,打开组件数据库管理器,选择Import按钮,如下图所示:
(11)   在弹出的界面中选择第(9)步中保存的组件路径,然后点击Import进行导入。导入成功后会出现如下图的提示信息:
   如果导入失败,首先观察导入日志中提示的错误信息,其次检查:
  • 数据库引擎是否打开;
  • 开发机是否接入局域网,是否能够ping通本机;
  • \\本机名或本机IP\Repositories是否能够正常访问;
  • Repositories目录是否设置为可写入共享;
  • 组件的Repositories路径是否设置正确;
5. 添加到XPE镜像文件中
    在导入组件成功后,打开目标设计器(Target Designer),查找你导入的组件(PenMount USB),你将可以在Hardware->Devices->Human Interface Devices节点下找到这个组件,同时双击该组件,就可以把它添加到你的XPE工程中去了。如下图所示:
 至此,关于设备驱动组件的开发介绍基本完成,选择PenMount触摸屏作为这个教程的用例是因为该驱动组件具有一定的代表性,当然,在实际开发工作中还有很多的问题,需要我们具体问题具体分析。