您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

Microsoft Windows XP Embedded技术常见问题

发布日期:2011-04-12

 

   摘要:该文档回答了有关 Microsoft Windows XP Embedded 操作系统的常见技术问题。

一般性问题

Windows XP Embedded 支持哪个类型的处理器?

Microsoft? Windows? XP Embedded 支持所有基于 X86 的 Intel 处理器,包括 Intel x86 和 Pentium、AMD K5/K6、Cyrix 5x86 和 6x86 CPU。

可以将 Windows NT Embedded 4.0 配置转换为 Windows XP Embedded 配置吗?

不,您不能将整个 Microsoft Windows NT? Embedded 版本 4.0 配置转换为 Windows XP Embedded 配置。

可以将使用 Windows NT Embedded 4.0 创建的 .kdf 文件转换为 Windows XP Embedded 中的 .sld 文件吗?

是的,可以。

Windows XP Embedded 中创建组件比在 Windows NT Embedded 中创建组件更容易吗?

是的,Windows XP Embedded 提供了 ECONVERT 工具,该工具还能够将文件和注册表项从 .kdf 格式转换为 .sld 格式。

如何将为 Windows NT Embedded 4.0 编写的应用程序移植到 Windows XP Embedded

在应用程序级别进行移植可能涉及到简单地复制可执行 (.exe) 文件和它的相关文件。在更复杂的级别进行移植时,可能需要使用 Microsoft Visual Studio? 工具改写源代码的某些部分,以适应不同的核心操作系统 (OS) 问题,例如在注册表项和设置方面存在的差异。您将需要使用 Windows Embedded 组件设计器在 .sld 文件中定义应用程序,以便可以将其导入到组件数据库中。

Windows XP Embedded 功能与 Windows XP 完全兼容吗?

是的,Windows XP Embedded 包含与 Windows XP 完全相同的二进制文件。

Windows XP Embedded 具有与 Windows XP 相同的功能吗?

是的,Windows XP Embedded 是 Windows XP Professional 的完全组件化版本。Windows XP Embedded 使您能够在减小了内存足迹的嵌入式设计中利用您审慎挑选的 Windows XP 功能。此外,Windows XP Embedded 还提供了嵌入式功能以支持范围宽广的设备实现。

Windows XP Embedded 是实时 OS 吗?

Windows XP Embedded 满足了绝大多数性能要求。但是,如果您的 Windows XP Embedded OS 需要更强大的实时支持,则可以利用可通过第三方供应商获得的实时扩展之一。

Windows NT Embedded 4.0 将继续受到支持吗?

是的,Windows NT Embedded 4.0 将继续受到支持。

Windows XP Embedded 是如何授权和定价的?

有关授权和定价的信息,请参阅 Web 页 How to Buy

如何为基于 Windows XP Embedded 的平台开发应用程序或驱动程序?

您可以使用与为桌面开发应用程序相同的应用程序环境。可以在 Windows NT 4.0 零售系统上开发应用程序,而不使用嵌入式系统来开发应用程序。Microsoft Visual Studio 提供了一个为 Windows XP Embedded 开发应用程序和驱动程序的综合环境。有关提供了为基于 Windows NT 4.0 的平台开发应用程序和驱动程序所必需的文档的信息,请访问 Microsoft 嵌入式开发人员网络

如何向目标 OS 中添加组件?

使用 Microsoft 组件设计器,可以用其他 Windows XP 开发工具可以理解的方式定义组件。该组件信息称为组件对象定义,并且具有 .sld 扩展名。

组件定义了它们自己的功能和它们自己的生成脚本。在组件对象定义中,组件功能被表示为资源、属性以及定义了组件如何使用资源的可选的生成脚本。您需要定义每个组件的依赖项和冲突。您还可以通过将组件分配到某个组然后管理该组,将组件组作为一个组件进行管理。

使用组件设计器,可以将组件对象定义保存在载体文件中,该文件是具有 .sld 扩展名的可扩展标记语言 (XML) 文件。然后,可以将组件对象定义导入到组件数据库中。

为什么组件对象定义很重要?

通过组件对象定义,可以将在平台上工作的任何应用程序、设备或服务添加到组件数据库中。使用 Windows Embedded 开发工具,可以随后向运行库映像中添加应用程序、设备或服务。

组件对象定义还能够确保适当地选择组件的资源和依赖项。例如,假设您定义了两个自定义应用程序,并且将它们导入到组件数据库中。您创建了未包含任一应用程序的标准配置。接下来,您决定使用标准配置和其中一个应用程序创建运行库映像。当您向配置中添加应用程序时,不仅会添加该应用程序的功能,还会警告开发工具注意该应用程序的依赖项和生成脚本。这使您能够确保您的配置包含成功生成所需的所有组件。

 

First Boot Agent (FBA)/实用工具技巧

当使用 Compact Flash 作为设备的存储器时,请让 First Boot Agent (FBA) 在磁盘上运行。

当您计划使用 Compact Flash 作为映像的存储设备时,建议您首先在硬盘驱动器上启动该映像,并且让“First Boot Agent”在磁盘上运行。原因是 FBA 在注册表创建期间进行大量的写入操作,并且已经给我烧坏了好几个设备。当映像在首次启动之后启动并运行库,可以随后将其简单地复制到设备中。

如果 FBA 反复重新启动,我该怎么办?

如果您的 FBA 反复重新启动,则这意味着您为错误的分区生成了运行库。目标设计器默认情况下使用 C:\,因此您必须更改目标计算机上的目标分区。检查位于 .\windows\fba\fbalog.txt 的 fbalog.txt 的开头。如果看到指出“invalid path”的错误,则这就是问题所在。

要解决该问题,请在目标设计器内,单击中心窗格中的 Settings。然后,选择 Target Device Settings。启动驱动器可能被正确设置为 C:,但是 Windows 文件夹、Program Files 文件夹以及 Docs and Settings 文件夹可能需要将它们的驱动器号从 C: 更改为正确的驱动器号。这将是 RealMode 中指示的驱动器号(就好像来自从 Microsoft MS-DOS? 运行的 fdisk)。它并不总是与 Windows 分配的驱动器号相同。

为什么我在 FBA 期间得到异常错误

这可能是由于运行库位于您执行双启动的系统的错误分区中而导致的。目标设计器默认情况下使用 C:\,因此您需要更改目标计算机上的目标分区。检查位于 .\windows\fba\fbalog.txt 的 fbalog.txt 的开头。如果看到指出“invalid path”的错误,则错误分区就是问题所在。

我自己如何对 FBA 错误进行疑难解答?

First Boot Agent 创建了可以用来进行疑难解答的日志。它位于运行库中的 .\windows\FBA\FBALOG.txt。它列出了所注册的每个二进制文件、绑定到网络接口卡 (NIC) 的协议、找到的即插即用 (PnP) 设备、错误以及更多内容。

如果 FBA 生成异常错误并且我在 FBA 期间收到虚拟内存错误,那么我应当检查什么?

您的运行库已经加载的服务和注册的二进制文件超出了目标计算机上的物理随机访问内存 (RAM) 的容量。您可以执行下列操作之一:

?

通过禁用或删除配置中组件,减少运行库中功能的数量。

?

向配置中添加页面文件支持(在目标设计器内)。

?

向目标计算机中添加更多的 RAM。

为什么 FBA 花费如此长的时间?

FBA 执行目标设计器当前没有能力脱机执行的服务。这包括即插即用、组件对象模型 (COM) 注册和安全性。

为什么我的 FBA 日志指示“Invalid Path”错误?

如果您的 FBA 日志含有“Invalid Path”语句,则这是因为您为目标计算机的错误目标分区生成了运行库。在目标设计器中,必须向工具提供运行库的分区位置。否则,FBA 可能会试图处理和注册位于不同分区的“安全生成”上的二进制文件,并最终生成异常错误。

 

组件问题

如何改变组件的默认设置?

并非所有组件都可以改变,但某些组件具有可配置的设置,从而使您可以在生成运行库之前,在目标设计器中修改组件的默认属性。例如,在您的配置中,分析显示驱动程序组件的设置。您将看到您能够预先选择运行库的分辨率、刷新频率和颜色深度。

到哪里查找产品中不存在的第三方驱动程序?

通过 Windows Embedded 工具,您可以容易地创建自己的第三方驱动程序组件。例如,在组件设计器中,您可以“导入”驱动程序的 .inf 文件。组件设计器随后将分析 .inf 文件的各个节,并标识必需的注册表项和必需的二进制文件。然后,您必须创建一个储备库以便存储这些二进制文件,将新组件导入到数据库中,并且用目标设计器将其添加到您的配置中。您还可以使用命令行实用工具 Econvert.exe 将 .inf 文件转换为 .sld 文件。

什么是宏组件?

宏组件就是只具有组件依赖项的组件,并且该组件中未列出任何二进制文件或注册表依赖项。如果您在组件设计器中创建您自己的组件,则请选中 Macro Component 复选框。在将得到的组件导入到您的数据库中时,显示名称将为粗体。

如果我在查找组件时遇到麻烦,该怎么办?

如果您知道该组件的名称或部分显示名称,则可以在目标设计器中搜索该组件。不要忘记如果组件的可见度小于您的当前设置(默认为 1000),则某些组件将向您隐藏。只须降低可见度(例如降低到 200),您就会看到 200 个以上的其他组件。

如果您不知道该组件的名称,但是您确实知道组成所需功能的二进制文件,则可以使用目标设计器中的 Filter Manager 来定位拥有该二进制文件的组件。

当我尝试安装旧式应用程序时,我得到了以下消息。为什么会这样呢?

16-bit Windows Subsystem
An installable Virtual Device Driver failed Dll initialization.
Choose 'Close' to terminate the application.

16 位应用程序需要 Windows on Windows (WOW),因此您必须向您的配置中添加 DOS Windows on Windows Support 组件。您可能需要在目标设计器中将可见度降低到 200 项,以便查看 DOS Windows on Windows Support 组件。

我的配置中必须包含哪些组件才能提供 Encrypted File System 支持?

NTFS 和 NTFS Format/工具。

 

运行库问题

如何自动登录运行库?

每当系统启动时,使用 Automatic Logon 组件自动登录用户。该组件具有可配置的设置,从而使您可以输入默认的域名、用户名和密码。请记住,如果用户以后在该运行库中更改了这些值,则 Autologon 功能将失败。

如何向运行库中添加页面文件?

在目标设计器中,在您的配置中定位硬件抽象层 (HAL) 组件,例如 Standard PC。展开该组件的树并选择 Settings。编辑“System Pagefile”设置中的“Initial Size”和“Maximum Size”。而且,选中 Enable Pagefile support 复选框。

Windows XP Embedded 中,运行库可以使用哪些外壳程序?

在数据库中,存在标准的 Explorer 外壳程序、Task Manager 外壳程序以及 Command 外壳程序 (cmd.exe)。如果您要获得标准的 Windows 外壳程序体验,则应该首选 Explorer 外壳程序。Command 外壳程序通常由非常小的配置使用,并且通常与 MinLogon 一起使用。

我在运行库初始启动期间得到了“Missing pci.sys”错误。如何避免该错误?

如果您收到了“Missing pci.sys”错误,则表明您使用了 TA.exe,但目标计算机上的基本输入/输出系统 (BIOS) 返回了数据库中无法找到的信息,因此您最终在配置中缺少了关键设备。在这一特定情况下,您的配置中将缺少外围组件互连 (PCI) 局部总线组件。请使用 TAP.exe,该问题就可解决。

如何在运行库初始启动期间避免“Stop Error 6B”

如果您的运行库执行错误检查,或者当您首次启动到您的操作系统时,操作系统意外停止,在蓝色屏幕上显示一个错误信息,并且操作系统出现带有错误检查代码 6B 的错误,则这表明您遗漏了需要的文件系统组件。例如,如果您已经在目标设计器中通过添加文件分配表 (FAT) 组件满足了文件系统组件要求,但目标分区含有 NTFS,则您将收到该错误。如果您只添加了 NTFS,但您的系统需要 FAT,则您还将看到该错误。数据库中有四个文件系统组件:FAT、NTFS、CDFS(用于 CD)和 UDFS(用于 DVD)。如果您愿意,则可以添加所有这四个组件。它们不会相互冲突。

注: FAT 组件用于 FAT16 和 FAT32。

如何在运行库初始启动期间避免“Stop Error 7B”

如果您的运行库执行错误检查,或者当您首次启动到您的操作系统时,操作系统意外停止,在蓝色屏幕上显示一个错误信息,并且操作系统出现带有错误检查代码 7B 的错误,则这表明您遗漏了关键的启动设备。该启动设备可能包含下列组件之一:一个磁盘驱动器、一个集成开发环境 (IDE) 控制器、一个主 IDE 通道、一个辅助 IDE 通道、一个 PCI 总线或其他启动设备。

两个最常见的原因是:

1.

您在生成硬件配置时没有使用工具查询目标计算机中的设备。

2.

您在目标计算机上的 BIOS 中使用了 ta.exe,但是它返回了无法在数据库中找到的信息。这意味着您可能已经在配置过程中丢失了关键设备。如果您知道该特定组件或一个兼容组件(例如,数据库中的通用驱动程序),则请尝试将这些组件中的一个添加到您的配置中,并再次生成运行库。

请尝试下列解决方案之一:

?

使用 tap.exe 而不是 ta.exe。使用 tap 几乎不会出错,并且可以确定所有需要的设备。只能从 Windows 2000 或 Windows XP 中运行 tap。Tap 将查询注册表以识别 Windows 安装程序确定最适合该计算机的正确设备。Tap 的另一个缺点是,它会引入任何它习惯于在该计算机中安装但随后被删除的设备,并且它可能会将某些您可能不需要的软件枚举设备引入到您的配置中。如果发生这种情况,请从您的配置中删除不需要的组件。

?

第二种解决方案是:在成功安装到目标计算机上的安全生成中分析设备管理器。例如,如果您已经安装了 Windows XP 或 Windows 2000,则请打开设备管理器,并且标识在设备管理器中列出并且在目标设计器中的配置中丢失的关键设备。然后,在目标设计器中找到具有相同显示名称的设备,并将其添加到您的配置中。

如何将运行库克隆到多个目标设备?

Windows XP Embedded 包含 System Cloning 工具组件。如果将该组件添加到配置中,则会向 First Boot Agent (FBA) 过程中添加通常看不到的步骤。在系统完成 FBA 阶段 0 到 8,500 之后,系统在您的主系统上重新启动并进入“重封”阶段 8,501 到 12,000。在“重封”阶段之后,必须关闭系统并将该映像复制到磁盘。将该映像传播到多个已克隆的计算机。该映像下一次启动时,克隆阶段将开始,并且计算机的主设备中的安全标识符 (SID) 被替换为唯一的 SID。有关详细信息,请参阅 XPEHELP.chm 中的帮助文件:System Design Guide | Design Considerations | Cloning

注: 请参考 XPEHELP.chm,以了解在克隆之后需要 FBA 处理某些工作时所需的特殊设置。有关详细信息,请参阅位于帮助文件中 System Design Guide | Appendix Info | Custom Resources | FBA Generic Command 处的“Phase (integer)”解释。

如何正确设置分区大小以避免错误:“A Problem is Preventing Windows from Accurately Checking the License for this Computer - 0x80090006”

如果在登录运行库时收到错误“A problem is preventing Windows from accurately checking the license for this computer.Error Code:0x80090006”,则这表明您没有在目标设计器中正确设置分区大小。在目标设计器中,必须向工具提供目标分区的大小。如果它全然不正确,则运行库将失败。默认设置为 1024 MB。要更改该设置,请在目标设计器的中心窗格中单击配置的 Settings。然后,选择 Target Device Settings 并找到 Boot Partition size 可配置设置。将该值更改为运行库将驻留的真正分区大小。

重要事项: 在重新生成运行库之前,重新运行依赖项检查。

如何在运行库中启用右键单击功能的上下文菜单?

上下文菜单默认情况下被禁用。要启用它们,必须在 User Interface Core 组件中更改可配置的设置。有两个复选框与可以修改的上下文菜单相关。

如何减小 Windows XP Embedded 运行库的内存足迹大小?

如果要试图减小运行库映像内存足迹大小,则您可能希望尝试下列操作:

?

禁用页面文件支持。如果您具有足够的 RAM 以支持您期望用户运行的服务,则您可能不需要页面文件。请注意,默认情况下,页面文件无论如何会被禁用。

?

在配置中,禁用或删除任何不需要的硬件组件。这些驱动程序组件可能具有组件依赖项,而后者又可能具有其他依赖项,以此类推。因此,在配置中具有一个不需要的驱动程序组件可能对产生的内存足迹具有影响(有时具有巨大影响)。

?

如果使用 TAP.exe 生成了硬件配置,请参阅“禁用 TAP.exe 收集的软件枚举设备”技巧。如果您不小心,则这些问题可能对内存足迹具有重大影响。

?

将目标计算机上的分区转换为 NTFS,然后压缩卷(压缩功能要求具有 NTFS 文件系统)。这可以减小内存足迹,减小幅度有时可达 40% 或更高。不要忘记,这需要向运行库中添加 NTFS 组件。

如何部署 Windows XP Embedded 运行库?

向设备中部署 Windows XP Embedded 运行库可能相当简单,但这里将提供一些可以帮助您避免失误的技巧。为了明确起见,使用“部署映像”来表示将运行库映像移动到设备并且在该设备上启动运行库;并且为了简单起见,使用标准的集成设备电路 (IDE) 硬盘驱动器作为启动媒体。在部署映像时,应该记住几件事情。

下面是一些您需要自己检查的容易事情:

?

确保您用来启动的分区被格式化为 FAT 或 FAT32。

?

确保该分区是活动的(使用 FDISK 验证或更改)。

?

确保启动分区(通常为 C:,或者为第一个硬盘驱动器上的第一个分区)具有有效的 Windows XP 启动扇区。

?

确保启动分区具有需要的 Windows XP 启动文件(这些文件包括 NTLDR、NTDETECT.COM 和 BOOT.INI)。

?

确保 BOOT.INI 具有指向系统文件位置的正确的 ARC 路径。

?

确保系统文件以需要的形式位于您所声称的位置。

?

确保配置知道在何处放置这些文件。

?

确保系统包含支持启动所需的驱动程序。

头两件事情非常易于自己进行检查,但是如果您不考虑它们,则它们会导致一些问题。

您可以使用 Windows XP Embedded Beta 2 随附的 BOOTPREP.EXE 实用工具,将有效的 Windows XP 启动扇区放在启动驱动器上。该工具应当位于 \Program Files\Windows Embedded\utilities 文件夹中。如果它不在那里,请在控制面板中双击 Add/Remove Programs 以修改 Windows XP Embedded 客户端工具安装,并且选择 Boot Preparation 实用工具。该工具具有关联的自述文件,该文件提供了完整的用法信息和一些典型的使用方案。

如果您在生成期间没有正确指定启动 ARC 路径,则 BOOT.INI 将不会具有指向系统的正确路径。这里不再重复有关 ARC 路径的信息。有关如何正确构建 ARC 路径的详细信息,请查询知识库、MSDN BOOT.INI 或 ARC 路径。

显然,如果 ARC 路径正确,则系统文件很可能位于那里 — 您需要确保不会发生从长文件名 (LFN) 到 MS DOS 8.3 名称的转换。您可以使用 Microsoft 和第三方工具,以帮助您在使用不支持 LFN 的操作系统进行复制时保留它们。实现副本的最佳方式是在开发计算机中安装嵌入式系统,然后在本机 Windows 2000 或 Windows XP 操作系统中将这些文件复制过去。还可以通过网络复制它们。也可以使用第三方工具在软盘启动设备上启用 LFN 网络复制。

当然,必须确保系统文件具有正确的组件以支持启动。确保这一点的最容易的方式是使用 TAP.EXE 来发现计算机上的硬件。但是,如果您必须运行 TA.EXE,或者您要手动添加组件,则可能会丢失至关重要的组件。所需组件的列表随计算机而异,但是您起码需要 BIOS 组件(例如,Standard PC — 它位于目标设计器中的 Hardware:Computers 下)、IDE 控制器(特定于硬件)、Primary IDE Channel 和 Secondary IDE Channel 组件以及 Disk Drive 组件。最后一个比较棘手,因为在 Windows XP Embedded 数据库中有三个 Disk Drive 组件。请检查每个组件的属性,并观察高级属性。您需要“cmiPnPDevID”属性值为“GenDisk”的组件。

您还必须确保在配置中将目标驱动器属性设置为指向正确位置。选择配置(“Configuration Editor”树中的顶部节点),然后单击“Details”窗格中的 Advanced。有四个需要设置的属性:

CmiTargetBootDrive

系统将从哪里启动(通常为 C:)

CmiTargetWinDir

\Windows 文件夹将位于何处

CmiTargetProgramFiles

\Program Files 文件夹将位于何处

CmiTargetDocsAndSettings

\Documents and Setting 文件夹将位于何处

如果在生成映像之前没有正确设置这些属性,则会在启动时遇到问题,并且在 First Boot Agent 操作序列期间遇到问题。

如果要从一个分区(比如 C:)中启动,但是从另一个分区(比如 D:)中运行系统,则开发计算机上的运行库映像将具有一个包含系统文件的 DriveD 文件夹,而根目录则包含需要的启动文件。请确保这些文件夹的内容被复制到正确的驱动器。

显然,这可能无法解决所有启动问题,但是通过这些项运行,应当能够帮助您更快地对启动问题进行疑难解答。

 

其他问题

如何在通电自检之后消除 Windows 启动画面?

在 boot.ini 中使用“/NOGUIBOOT”开关。这会消除 Windows XP Embedded 启动画面,屏幕将保持空白,直到外壳程序加载或者提示用户登录系统为止。

示例:在 boot.ini 中,您的 ARC 路径看起来将如下所示:

multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Windows XP Embedded" /fastdetect /noguiboot

什么是 Bootprep

Bootprep.exe 是一个命令行工具,可用于创建能够启动到 Windows XP Embedded 中的媒体。首先,必须通过使用诸如 FORMAT 和 FDISK 这样的 MS DOS 工具准备 MBR(主启动记录)和至少一个分区,来准备该媒体。该程序会准备媒体,该媒体的活动分区已经被用 FAT16、BIGDOS FAT 16 或 FAT32 进行了格式化并使其变得可启动,以便启动到 Windows Embedded 中。该程序用加载 NTLDR 的代码替换通常会通过加载 IO.SYS 和 MSDOS.SYS 启动到 DOS 中的分区启动扇区代码。

如何禁用 TAP.exe 收集的软件枚举设备?

使用 TAP.exe 的一个缺点是会得到注册表中列出的每个设备。这包括通常会安装但随后已经移除的设备(像可能已经升级的旧视频卡),并且还包括软件枚举设备。例如,很多配置会显示广域网 (WAN) Miniport 和远程访问服务 (RAS) 异步组件。这些组件被列在计算机的注册表中,但是标准联网功能可能无需它们即可在运行库中正常工作。禁用或删除它们可以大大减小内存足迹。要获得这一好处,在完整运行检查依赖项阶段之前,必须将它们从配置中移除。

如何使用 NTLDR 多重启动 CEPC

使用 NTLDR,可以在 Windows NT?、Windows XP 或 MS DOS(还包括不带 DOS 启动加载程序的 Windows CE)之间多重启动基于 Microsoft Windows CE 的个人计算机。只须在基于 Windows CE 的计算机上的 FAT16 启动分区中安装 Windows NT 或 Windows XP,然后在 BOOT.INI 文件中添加一行,以便为要从中启动的 512 字节分区启动扇区提供另一个选择。

当 NTLDR 安装时,当前分区启动扇区(通常为磁轨 0、柱面 1、扇区 1)被保存到 BOOTSECT.DOS,并且被替换为它自己的加载 NTLDR 的启动扇区,NTLDR 又会调用 NTDETECT.COM 以继续启动到 Windows NT 或 Windows XP 中。

NTLDR 将为 C:\ 分区使用默认的 BOOTSECT.DOS 文件,但是您可以指定您自己的路径名(就像在 Windows NT 安装过程中所做的那样)。要使 NTLDR 显得好像不在那里以便绕过它的提示,只须在 BOOT.INI 文件中设置 timeout=0。

您还可以使用“System”控制面板中“Advanced”选项卡上的“Startup”按钮来选择不同的默认选项。

我有一个应用程序,它具有多个文件,这些文件具有相同的名称但驻留在不同的文件夹路径中。我无法将它们放在同一储备库中,因为它们的名称完全相同。我如何解决该问题?

回答既可以比较简短,又可以比较冗长。简短的回答是在 .sld 文件中指定二进制文件的源名称和目标名称。例如,可以在储备库中将二进制文件重命名为“windows_foo.dll”和“windows_system32_foo.dll”(其中,“foo”是您选择的任何名称的通用占位符)。当目标设计器生成运行库时,它会将正确的文件复制到正确位置,并且即时将其重命名为正确的文件名。

冗长的回答包含两个部分:

1.

修饰某些文件的名称。例如,如果您具有两个名为 foo.dll 的二进制文件,其中一个应当存在于 windows\system32 文件夹中,而另一个应当存在于 windows\drivers 文件夹中,则可以如下所示重命名二进制文件:

?

windows_system32_foo.dll

?

windows_drivers_foo.dll

2.

在 .sld 文件中,创作相应的组件以便将 windows_drivers_foo.dll 放入正确的目录中,并且在生成过程中将该二进制文件重命名为 foo.dll。可以在组件设计器的 Add Component File Resource 对话框中完成该工作。在那里,您可以指定源名称(例如,储备库中的文件名 — 可以是“windows_drivers_foo.dll”)和目标名称(例如,文件在驻留在运行库的正确文件夹中时所具有的名称 — 可以是“foo.dll”)。目标设计器在生成运行库时,会自动将该文件重命名为正确的名称。

在从 Explorer 中打开“Sharing and Security . . . ”时,如何使安全选项卡显示(就像在 Windows XP Pro 中一样)。我可能会丢失或错误设置哪个组件?

您必须在配置中包含 Security Shell Extension 组件。请注意,对于 Windows XP Embedded 而言,您还必须手动注册“rshx32.dll”文件。这在 Windows XP Embedded Service Pack 1 中已经得到解决。