在Windows Embedded开发中使用Windows PE

开发
Microsoft® Windows® Preinstallation Environment (Windows PE) CD-ROM 提供了一个虽然小却很强大的启动环境,可以使用该环境完成很多 Windows XP Embedded 开发任务

在Windows XP Embedded 开发中使用 Windows PE ,通过 Windows PE,可以启动没有操作系统、硬盘驱动器和设备列表的设备。以下列表显示了可以通过Windows PE 完成的一些工作:

• 启动任何具有 CD-ROM 驱动器的设备,而不管启动媒体(例如,硬盘驱动器)状态如何或是否存在。

• 用目标分析器检测硬件设备。  

• 用 DiskPart 格式化硬盘驱动器以及对其进行分区。

• 连接到网络文件夹以安装驱动程序或映像。

在创建映像之后,可以使用 Windows PE 来微调设备上的映像。以下列表显示了在已经创建映像之后可以用 Windows PE 完成的一些工作:

• 使用 Windows PE 作为紧急启动磁盘。

• 修复损坏的 boot.ini 文件。

• 访问目标设备上的文件系统。

• 在运行目标设备上的映像前后,查看和编辑该映像的注册表配置单元。

该技术文章是为开发和部署 Windows XP Embedded 映像的 Microsoft 合作伙伴编写的,并且假定读者充分了解和熟悉 Microsoft Windows Embedded Studio 组件设计器、组件数据库管理器和目标设计器。

本页内容

◆Windows PE 简介

◆用 Windows PE 启动

◆用目标分析器检测硬件设备

◆使用 DiskPart 对硬盘驱动器进行分区

◆连接到网络文件夹以安装驱动程序或映像

◆使用 Windows PE 作为紧急启动磁盘

◆访问目标设备上的文件系统

◆查看和编辑目标设备上的映像的注册表配置单元

◆限制

◆Windows PE 上不受支持的Windows API

那我们一个一个介绍。

◆Windows PE 简介

Microsoft Windows Preinstallation Environment (Windows PE) 是具有有限服务的最小 Win32® 子系统,它基于在保护模式下运行的 Windows XP Professional。Windows PE 提供了执行下列操作所需的最低功能:

• 运行 Windows 安装程序。

• 从网络共享中安装操作系统.

• 自动执行基本过程。  

• 执行硬件验证。

Windows XP Embedded Studio 随附的 Windows PE CD-ROM 提供了下列功能:

• 在可启动媒体和内存中都具有小内存足迹的硬件无关 Windows 环境。

• Win32 应用程序编程接口 (API) 子集、一个能够运行批处理文件的命令行接口 (Cmd.exe) 以及对用于创建自定义工具或脚本的 Windows Script Host (WSH)、HTML Applications (HTA) 和 ActiveX Data Objects (ADO) 的支持。

• 网络访问并支持标准现成的网络驱动程序,这些驱动程序是从使用 TCP/IP 的网络复制映像和测试套件时可能需要的。

• 对所有使用 Windows 2000 或 Windows XP 驱动程序的海量存储设备的支持。

• 对创建、删除、格式化和管理 NTFS 文件系统分区的天然支持。

• 用于加载和测试特定硬件驱动程序的硬件诊断。

◆用 Windows PE 启动

因为 Windows PE 在 CD-ROM 上是完备的,所以无须使用硬盘驱动器就可以启动设备。在从 Windows PE 启动之后,就可以运行目标分析器、访问设备上的文件以及连接到网络文件夹。

通过使用 Windows PE 启动

1.将一个 CD-ROM 驱动器连接到设备。

2.将 Windows XP Embedded CD-ROM 盘 1 插入到该驱动器中。

3.将设备的 BIOS 设置配置为从 CD-ROM 驱动器启动,并且启动 CD。

Windows PE 即会启动。在 Windows PE 启动过程中,将启用联网服务并通过 DHCP 配置网络接口。

◆用目标分析器检测硬件设备

Windows PE 使用即插即用机制来枚举目标设备上的硬件。然后,目标分析器可以使用该信息来创建 devices.pmq 文件。

在 Windows PE 环境中运行 TAP.exe 通常会产生相当小的目标系统 PMQ 或硬件配置文件。这会产生最小配置运行库映像。

下表显示了 TAP.exe 能够在各种环境中找到的设备的数量方面的差异:

设备 完整桌面环境 Windows PE 环境

典型的 Windows XP Pro 或 Windows 2000 桌面环境

65 到 75 个设备

35 到 45 个设备

典型的 Windows XP Pro 或 Windows 2000 膝上型环境

90 到 100 个设备

45 到 55 个设备

在 Windows PE 环境中,TAP.exe 将为 devices.pmq 找到下列基本项:

• 所有核心父设备,例如,外围组件互连 (PCI) 和图形加速端口 (AGP) 设备。

• 正确的系统硬件抽象层 (HAL)。

• 磁盘驱动器。

• CD-ROM 驱动器。

• 系统芯片组。

• 启动系统所需的关键启动设备。

• 基本通用串行总线 (USB) 设备支持。

使用 Windows PE 运行目标分析器

1.用您打算让设备在其最终配置中具有的所有外围设备来设置该设备。

2.将一个 CD-ROM 驱动器连接到设备。

3.用 Windows XP Embedded CD-ROM 盘 1 启动设备。

当您从 Windows PE 中运行目标分析器时,可以将输出 (devices.pmq) 保存到网络文件夹或软盘驱动器。

将目标分析器输出保存到网络位置

1.从 Windows PE 命令行,使用 net use 命令将一个共享驱动器映射到该设备。

下面的代码示例显示了常规语法。

net use * \\﹤computername﹥\﹤sharename﹥

下面的代码示例显示了如何将名为“development_computer”的计算机的共享 C 驱动器映射到目标设备上的“z”驱动器。

net use Z \\﹤developmentcomputer﹥\﹤C$﹥

2.将目录更改到刚才映射的驱动器号。

例如,键入:

z:

3.会将目录更改到包含 Tap.exe 的目录。

例如,键入:

cd Program Files\Windows Embedded\utilities

4.运行 Tap.exe。

输出文件的默认位置和文件名是与 tap.exe 相同的目录,并且该文件名为 devices.pmq。

注可以用开关 o/ 指定不同的路径和输出文件名。例如,要用输出文件名 devices2.pmq 将输出发送到计算机 //OtherDevelopmentComputerName 上的目录 c:\Device1,则请键入:

tap.exe /o //﹤OtherDevelopmentComputerName﹥/c$/Device1/devices2.pmq

将目标分析器输出保存到软盘驱动器

1.导航到 \XPE 目录并且从命令行运行 TAP.exe。

下面的代码示例显示了适当的参数:

tap /O a:\Kiosk-HW.PMQ

然后,TAP.exe 将产生目标设备的硬件配置文件(一个 .pmq 文件),并且将结果保存到驱动器 A 上的 a:\Kiosk-HW.PMQ。 

2.将 Kiosk-HW.PMQ 文件复制到已经安装了 Windows XP Embedded 工具和数据库的开发计算机。

◆使用 DiskPart 对硬盘驱动器进行分区

DiskPart 随附在 Windows PE 中,并且可以用来配置不具有操作系统 (OS) 的设备。在启动 Windows PE 之后,可以配置系统上的硬盘。

有关使用 Diskpart 的其他信息,请参见该 Microsoft Web 站点。

通过使用 DiskPart 配置硬盘驱动器

1.启动设备上的 Windows PE。

2.在命令提示处,键入 DiskPart。显示 DiskPart 命令提示。

3.要显示 DiskPart 帮助,请键入 ?。

4.使用 DiskPart 命令列出当前配置,选择磁盘,或者编辑分区。

例如,要在系统中的辅助磁盘上创建 400 MB 主分区,请使用下列 Diskpart 命令:

list disk

select disk 1

list partition

create partition primary size=400

5.在配置硬盘之后,通过键入 exit 停止该实用工具。

6.重新启动设备。

7.用 format 命令格式化任何刚刚创建的分区。

有关使用 format 的详细信息,请参见该Microsoft Web 站点。

注 DiskPart 实用工具包含一个重写选项。该选项可用来删除 Microsoft Reserved (MSR) 分区或其他保护分区。在使用该重写选项时要极为小心。

还可以通过使用部署海量系统所需的命令为 DiskPart 创建脚本。如果启动 Windows PE 并且在网络上呈现该设备,则可以通过使用以下命令来运行 DiskPart 脚本:

diskpart /s ﹤script name﹥

◆连接到网络文件夹以安装驱动程序或映像

可以使用 Windows PE 将没有操作系统 (OS) 的设备连接到网络。 Windows PE 支持很多标准网络设备。当您用 Windows PE 启动时,它会启用网络并启动动态主机配置协议 (DHCP)。当设备在网络中处于活动状态时,可以映射共享驱动器,或者将运行库映像和应用程序复制到该设备。

映射共享驱动器

1.启动设备上的 Windows PE。

2.从 Windows PE 命令行,使用 net use 命令将一个共享驱动器映射到该设备。

例如,net use * \\﹤computername﹥\﹤sharename﹥。

在将共享驱动器装入设备之后,可以将运行库映像从共享复制到设备中,或者运行远程脚本。

◆使用 Windows PE 作为紧急启动磁盘

如果您对设备进行了更改,结果使该设备变得无法启动,则可以使用 Windows PE 作为紧急启动磁盘。

例如,如果您将映像部署到双启动测试设备,并且用映像的 boot.ini 文件意外改写了测试计算机的 boot.ini 文件,则您可能会这样做。如果您无法启动计算机,则可以从 Windows PE CD-ROM 启动并修复 boot.ini 文件。

修复 boot.ini 文件

1.用 Windows XP Embedded CD-ROM 盘 1 启动设备。

2.在 Windows PE 启动之后,在命令提示处键入:

C:\boot.ini

3.根据需要编辑 boot.ini 文件。

有关编辑启动文件的详细信息,请参见该Microsoft Web 站点。

◆访问目标设备上的文件系统

当您用 Windows PE 启动设备时,您将对目标设备上的 NTFS 文件系统具有完整的访问权限,而无论文件系统中放置的管理员特权、访问控制列表或 NTFS 权限怎样。

注可以用加密文件系统 (EFS) 加密映像中的文件和文件夹,以便帮助防止数据遭到未经授权的访问。加密文件被针对 NTFS 访问进行了保护。有关 EFS 的详细信息,请参见该Microsoft Web 站点。

访问目标设备上的文件

1.用 Windows XP Embedded CD-ROM 盘 1 启动设备。

Windows PE 即会启动。

2.在命令提示处,根据需要映射网络驱动器,然后导航到本地或网络文件夹。

◆查看和编辑目标设备上的映像的注册表配置单元

在 FBA 前后,可以查看和编辑设备上的映像的注册表配置单元。注册表文件位于目标设备的 \WINDOWS\system32\config 文件夹中。

例如,C:\WINDOWS\system32\config。

在运行 FBA 之前,注册表文件具有 .SAV 扩展名。下面的列表显示了带扩展名的注册表配置单元:

• SAM.SAV

• SECURITY.SAV

• SOFTWARE.SAV

• SYSTEM.SAV

当 FBA 完成后,注册表文件被保存且不带 .SAV 扩展名。下面的列表显示了不带扩展名的注册表配置单元:

• SAM

• SECURITY

• SOFTWARE

• SYSTEM

有关注册表配置单元的详细信息,请参见该Microsoft Web 站点。

编辑目标设备的注册表

1.启动设备上的 Windows PE。

2.在命令提示处,键入 regedit。  

3.单击 HKEY_LOCAL_MACHINE。

4.在 File 菜单上,选择 Load Hive。

可能会出现一系列消息框,表明该文件夹无法找到并且该位置不可用。请忽略这些消息,并且在它们出现时单击 OK。

出现 Load Hive 对话框。

5.在 Files of type 框中,选择 All Files。  

6.导航到目标设备上的注册表位置。

例如,如果映像位于驱动器 C 上,请导航到 C:\WINDOWS\system32\config。

7.在 config 文件夹中,选择要编辑的配置单元,然后选择 OK。

8.在 Load Hive 对话框中,键入项名称。例如,TEST_DEVICE。

根据需要重复前面的步骤,以加载更多的配置单元。

9.选择 HKEY_LOCAL_MACHINE,然后选择所创建的新注册表项。

10.编辑或查看这些注册表项。

11.在完成注册表项更改之后,选择 HKEY_LOCAL_MACHINE,选择 File 菜单,然后选择 Unload Hive。

◆限制

包含在 Windows Embedded CD-ROM 中的 Windows PE 具有下列限制:

• Windows XP Embedded CD-ROM 中包含的 Windows PE 版本无法更新或配置。必须购买 Windows PE 的授权版本才能添加自定义支持。有关信息,请联系您的 Microsoft 经销商。

• Windows PE 只包含可用 Win32 API 的子集。它包含 I/O(磁盘和网络)和核心 Win32 API。

• 在连续使用 24 小时之后,Windows PE 会自动停止运行外壳程序并重新启动。

• 无法对网络其他位置的 Windows PE 计算机上的文件或文件夹进行网络访问。

• 分布式文件系统 (DFS) 名称解析不受支持。对于 Windows PE 1.1 存在有限的支持,但仅限于独立的 DFS 根。

• 获得与文件服务器的网络连接的经过测试的方法是 TCP/IP 和 NetBIOS over TCP/IP。其他方法(例如,IPX/SPX 网络协议)不受支持。

• 在 Windows PE 运行期间分配的驱动器号不会保存到任何在重新启动后仍然存留的注册表。创建分区时的驱动器号分配按照创建顺序执行,但重新启动时的驱动器号分配按照默认顺序执行。

• Windows PE 需要与 VGA 兼容的设备,并且使用 800 x 600 像素的屏幕分辨率。如果 Windows PE 无法检测视频设置,则默认屏幕分辨率为 640 x 480 像素。

• Windows PE 不支持 Microsoft .NET Framework。

注如果您需要比 Windows PE 提供的功能更多的功能,则可以创建您自己的从 CD 启动的 Windows XP Embedded 映像。有关创建可启动 CD-ROM 的详细信息,请参见该Microsoft Web 站点。

◆Windows PE 上不受支持的Windows API

Win32 API 集的下列类别函数在 Windows PE 中不存在:

• Windows Management Instrumentation (WMI)

• Windows Multimedia

• Still Image

• OpenGL

• NetShow Theater Administration

• Windows Shell

• Access Control

• Power Options

• Printing and Print Spooler

• Window Station and Desktop

• Terminal Services

• User Profile

• Tape Backup

有关这些类别的详细信息,请参见该Microsoft Web 站点。

【编辑推荐】

  1. 在Windows Embedded中创建Silverlight播放器
  2. Windows Embedded Standard 2009 功能简介
  3. 微软计划通过Windows Embedded进军Smartbook市场
  4. Windows Embedded嵌入式系统的特色
  5. 在Windows Embedded中创建Silverlight组件
责任编辑:仲衡 来源: MSDN
相关推荐

2009-07-16 15:46:09

Windows Emb

2009-02-17 14:22:40

Windows Emb

2013-05-14 10:13:06

WindowsLinux操作系统

2010-12-14 18:56:12

微软

2009-04-10 09:06:16

Windows Emb

2009-07-06 16:44:49

WinCE中获取设备I

2009-04-03 13:09:12

Windows Emb

2009-12-23 09:05:03

2011-04-22 19:29:57

Windows Emb嵌入式开发

2011-04-25 19:15:16

2009-03-30 15:52:24

Windows Emb

2009-12-10 09:19:28

Windows 7嵌入式平台

2009-11-13 09:44:44

Driver ExtrWindows Emb

2009-07-16 15:27:13

Windows Emb

2009-10-14 14:33:47

EmbeddedWindows 7OEM

2011-04-19 18:48:25

Windows Emb开发工具嵌入式

2010-03-10 12:54:20

Windows Emb

2013-03-22 09:38:34

微软Windows Emb

2009-09-23 10:37:20

Windows Emb

2011-04-19 18:36:45

Windows Emb嵌入式
点赞
收藏

51CTO技术栈公众号