CSDN博客

img Ivony

针对应用程序的专为Windows XP设计徽标

发表于2004/10/7 22:01:00  2302人阅读

 

针对应用程序的专为Windows XP设计徽标


“Designed for Microsoft Windows XP”应用程序技术规范针对应用程序技术要求进行了定义,以帮助广大厂商取得“Designed for Microsoft Windows XP”徽标使用资格。

以下内容提供了关于应用程序“Designed for Windows XP”徽标计划关键技术要求的总结摘要。

目录:

另请参阅:
建议与未来技术要求提供的补充指导原则
下载资源:专为Microsoft Windows XP设计应用程序技术规范


1.0 Windows基础:技术要求摘要

广大客户可以相信,符合徽标计划技术要求的产品将可在Microsoft® Windows® XP上正常运行,并且不会对操作系统可靠性造成负面影响。

执行主要功能并保持稳定性

应用程序必须可在不以牺牲操作系统或自身稳定性为代价的前提下,执行主要功能特性。

由应用程序安装的所有内核模式驱动程序都必须通过基于Windows XP平台的验证测试

粗制滥造的内核模式驱动程序往往是导致系统崩溃的隐患。有鉴于此,任何包含有内核模式驱动程序的应用程序(如备份、复制保护和CD刻录)都必须接受全面彻底的技术测试,以确保将上述风险降至最低水平--这一点至关重要。

如果应用程序包含有内核模式驱动程序,那么该应用程序包含的每一个驱动程序都必须通过由Windows Driver Verifier Manager(Windows驱动程序验证管理器)工具(Verifier.exe)执行的技术验证。也就是说,Driver Verifier(驱动程序验证器)在运行过程中不得报出任何停止错误消息,否则,就意味着存在可能导致系统不稳定的隐患。

您有责任确保随同应用程序一并提交的全部组件均符合上述要求。

应用程序所包含的任何设备或筛选器驱动程序均必须通过Windows HCT测试

如果您所提交的产品包含硬件设备驱动程序或筛选器驱动程序,则必须确保这些驱动程序通过由Windows Hardware Compatibility Test(Windows硬件兼容性测试,HCT)10.0或更高版本提供的相关测试。

针对特定类型的驱动程序,Windows XP将可在其试图安装某一不具备Microsoft数字签名驱动程序的情况下,向最终用户发出警报。就任何需要具备数字签名的驱动程序类型而言,其组件均必须取得由Microsoft授予的数字签名。

您应就确保随同应用程序一并提交的全部组件均符合上述要求承担责任。

正确执行Windows版本检测

应用程序必须就相关操作系统满足其最低版本需求的情况加以验证。该应用程序还必须能够在所有Windows后续版本上安装和运行。

在某些特定情况下,阻止应用程序安装在Windows后续版本上的做法是可以接受的。如果您决定这样做,则必须在阻断安装或执行过程的同时,就相关应用程序并非针对Windows后续版本设计的有关情况向用户进行提示。

支持快速用户切换特性

在Windows XP中,快速用户切换特性将允许共享同一台计算机的多名用户拥有各自的配置方案,并可在无须执行注销操作的前提下就其当前工作空间实施互换。各厂商必须确保相关应用程序不会在客户使用Fast User Switching(快速用户切换)特性时出现系统崩溃或数据(或设置)的丢失现象。

举例来说,如果第一位用户正在使用某个编辑应用程序,而第二位用户也同时启动了该编辑应用程序,那么,就必须确保该应用程序的第一个实例既不会关闭程序,也不会将第一位用户的编辑内容丢失。

在满足由数据与设置管理所提出要求的基础上,您的应用程序便不太可能出现与快速用户切换特性有关的故障问题。当然,这里应将同CD驱动器、打印机、调制解调器及声卡等共享资源之间所可能发生的冲突排除在外。

如果由不同用户运行的其它应用程序附加实例可能导致主要功能出现故障,那么,您就必须重新修改产品设计,以确保杜绝类似情况的发生。在为防止快速用户切换发生故障而禁用某个特性时,相关应用程序必须将这样做的理由告知用户。

支持最新可视化风格

如果应用程序在用户选取某种最新可视化风格的情况下发生功能或可用性丧失,那么,您将必须针对该应用程序就相关可视化风格予以禁用。由于具备全屏图形模式的应用程序一般不会因在Windows中修改可视化风格而使其功能或可用性遭受负面影响,故此,厂商无需为满足上述要求对此类应用程序进行特殊处理。

支持任务切换

既不允许应用程序对ALT+TAB、CTRL+ALT+DEL及其它任务切换功能予以屏蔽,也不允许应用程序以任何方式禁用上述机制。


2.0 安装/删除:技术要求摘要

客户可以相信,您所开发的产品在安装到Windows XP平台上时,不会对操作系统或其它应用程序造成负面影响。

请不要试图对受到Windows文件保护特性保护的文件执行替换操作

应用程序不得对受到Windows文件保护(WFP)特性保护的文件执行替换操作。为避免相关应用程序触发WFP,该程序在安装任何并非由它自己创建的文件时,应该调用SfcIsFileProtected函数。Windows Installer(Windows安装程序)服务将以自动方式执行上述处理过程。

Windows文件保护是一项可防止在未经授权的情况下对必要系统文件实施替换的Windows XP特性。WFP将作为后台处理过程运行于Windows XP之上,并可对特定文件实施监控。当WFP检测到某一受保护文件已被替换时,便会将其恢复至初始状态。

受保护文件主要包括随同Windows XP产品CD一并发售的下列文件::

  • 绝大多数的.SYS、.DLL、.EXE和.OCX文件。
  • 以下字体文件:Micross.ttf、Tahoma.ttf、Tahomabd.ttf、Dosapp.fon、Fixedsys.fon、Modern.fon、Script.fon及Vgaoem.fon。

如果相关应用程序要求使用上述组件的更新版本,则必须通过使用负责安装所需版本的Microsoft服务包对上述组件进行更新。

从Windows早期版本执行迁移

应用程序必须能够确保在将操作系统从Windows 98、Windows Me、Windows NT®或Windows 2000升级至Windows XP的情况下仍可正常发挥作用。我们强烈建议,相关应用程序应可在无需执行卸载或重新安装的前提下,实现上述要求。

如果您所开发的应用程序需要Windows版本专用代码(如内核模式驱动程序和VxD等),则必须确保用户在将操作系统升级至Windows后续版本的时候,可以通过下载或检索得到一个相应的解决方案。

  • 应用程序不得在操作系统升级为最新版本的情况下出现崩溃或数据丢失现象。
  • 有关解决方案必须以免费方式提供。
  • 有关解决方案的实施过程不得包含任何专业技术操作。相反,它必须便于使用,并面向最终用户。举例来说,解决方案不得要求用户对注册表项或INI设置进行修改。

为满足上述要求,相关应用程序必须具备在运行时针对操作系统变化做出动态响应的能力。许多应用程序均在安装过程中对Windows版本进行检测,并在此基础上确定所需安装的组件。这通常意味着,所安装的应用程序具有操作系统针对性,并将在系统升级为Windows后续版本时无法正常发挥作用。

应用程序只需从其所支持的Windows版本实施迁移。举例来说,如果应用程序不能安装于Windows 98或Windows Me,那么,也就无需从这两个版本实施迁移。

不要以早期版本改写非私有文件

应用程序的安装程序必须正确执行检测操作,以确保最新文件版本得到安装。应用程序的安装操作不得导致并非由它创建的文件或并非由它创建而且被其它应用程序共享的文件回退到较老的版本。

除非必须执行版本升级,否则不要提示用户进行组件升级。

正确的文件版本信息将使您受益良多,这其中便包括使“不以早期版本改写文件”的要求更容易得到满足。与此相对应的是,您所分发的全部可执行映象必须包含有效的文件版本信息。当您显示或取得可执行文件(如EXE、DLL、OCX和CPL等)属性时,必须确保其包含有精确的产品名)、公司名称和文件版本

避免提出不必要的重启要求

Windows XP中将极少出现要求重新引导系统的情况。重启是不受广大客户欢迎的要求,在某些情况下,甚至有可能成为应用程序部署的障碍。应用程序不得在安装过程中或完成安装后要求或建议用户执行系统重启。

以下情况需要执行系统重启:

  • Windows Service Pack(Windows服务包)或授权系统重分发功能的安装可能需要系统重启。
  • Graphical Identification and Authentication(图形识别与验证,GINA)动态链接库的安装需要执行系统重启。GINA是一个由Winlogon加载的可替换DLL组件。GINA主要用来实施交互登录模式的验证策略,并可望执行全部识别与验证用户交互操作。举例来说,替换GINA DLL将用来实现可取代标准Windows XP用户名称与口令验证方式的智能卡、视网膜扫描及其它身份验证机制。

不需要执行系统重启的情况:

  • DLL注册。
  • 更新服务组件。必要情况下,您必须向用户提示,特定服务将在更新过程中被终止。
  • 替换供应用程序使用的现有文件。您必须向用户提供同已对所需更新资源文件实施加载、并仍处于打开状态之应用程序有关的信息,以便使用户得以关闭上述文件,并在无需系统重启的前提下执行文件替换操作。

    此外,对于众多组件而言,为避免这种情况的发生,您应以并列(side by side)方式对其执行安装,或使用具备“延迟到重启”选项的MoveFileEx。

如果您确实需要执行系统重启,则必须为用户提供推迟执行重启的选择余地。

在缺省状态下安装至Program Files目录

在缺省状态下,必须将应用程序安装到一个用来存储当前用户程序文件的适当子目录中。

  • 如果您并未使用Windows Installer(Windows安装程序),则建议您使用SHGetFolderPath API返回CSIDL_PROGRAM_FILES值所代表的字符串。在英文版本的系统中,该文件夹路径通常为“C:/Program Files”。但是,即便在英文系统中,也不要对上述路径生搬硬套,因为它并不具备通用性。
  • 如果您并未使用Windows安装程序,则建议您使用SHGetFolderPath API对由CSIDL_PROGRAM_FILES值所代表的字符串进行检索。在英语系统中,该文件夹路径通常为C:/Program Files。但是,即便在英语系统中,也不要对上述路径生搬硬套,因为它并不具备通用性。

如果您正在对某个应用程序的预装版本进行升级,则可将现有版本所在文件夹作为缺省路径。而如果您所开发的应用程序无需执行安装过程(即可在无需将任何文件安装至相关系统的情况下执行),则不必适用以上技术要求。

将非并列(side by side)共享文件安装至正确位置

基于Windows的应用程序可对代码、应用程序、注册表中的组件状态、文件系统中的应用程序专用数据以及可揭示全局名称空间的Windows API进行共享。共享特性允许对有限的硬件资源加以高效利用,而且减少了必须接受Quality Assurance(质量保证)小组测试的暴露前端。

当然,这里还存在着需要共同负担的成本费用。共享特性将导致应用程序之间发生彼此依赖的关系,从而,形成系统薄弱环节。在极端状况下,原本运转正常的应用程序将有可能莫名其妙地出现功能失常甚至运行故障。在典型情况下,应用程序主要依赖于共享组件的特殊版本或实现方式。如果共享组件因其它应用程序的安装而得到升级(或遭到降级),那么,先前的应用程序将有可能被破坏。

Windows XP、Windows 2000、Windows 98 Second Edition和Windows Me均可提供并列共享特性,以期将上述应用程序薄弱性降至最低水平。并列共享特性将可允许同一Win32®组件的多个版本在系统内存中同时运行。

而这就意味着,应用程序将可针对作为其设计依据和测试基准的特定组件加以运用;这一点即使在其它应用程序要求使用相同组件不同版本的情况下,也不会受到影响。这将使开发人员得以创建出更具可靠性的应用程序,其主要原因在于,开发人员可在无须考虑同一系统上其它应用程序要求的前提下,针对所需使用的组件版本加以选择。

非并列共享组件的适当位置主要取决于这些组件是否以跨企业方式接受共享:

  • 必须将专属单一软件厂商的共享组件安装于下列位置之一:通用文件目录或Program Files文件夹下的发布者目录。请不要将这些文件存储在System目录下。
  • 新的控制面板对象必须安装于Windows XP的应用程序目录下。
  • 服务功能与设备驱动程序必须置于System目录下。
  • 由多个软件厂商共享的非并列OCX与DLL应置于System目录下,以确保针对相关应用程序的向后兼容性。

针对“添加或删除程序”提供适当支持

应用程序必须提供产品名称和卸载程序位置等相关资料,以便使控制面板中的“添加或删除程序”能够根据需要获得与该应用程序有关的信息。您可在安装过程中将这些信息直接写入注册表,或者在使用基于Windows Installer(Windows安装程序)服务之安装系统的情况下,通过由基于Windows Installer(Windows安装程序)的软件包所提供的相关属性对这些数值加以设定。

上述要求并不适用于无需执行安装的应用程序--也就是说,此类应用程序可在无须安装组件、写入注册表、修改系统设置或将除用户生成文件外的任何文件保存于系统之上的前提下实现正常运行。

应用程序的卸载程序必须能够将本应用程序正确而全面地从系统中删除。

支持“所有用户”安装方式

应用程序往往由同一计算机上的多个用户共同使用。您所开发的安装程序必须在缺省状态下设定为“所有用户”方式,或将“所有用户”方式作为一个安装选项予以提供。举例来说,某一安装程序可能在缺省状态下被设定为仅面向当前用户安装应用程序,但该应用程序还必须提供面向所有用户进行安装的选项。

不具备特殊权限的用户也可能试图安装相关应用程序。如果受到限制的用户无法安装应用程序或面向“所有用户”执行安装,那么,安装程序也必须能妥善地执行降级操作。

支持CD和DVD的Autorun(自动运行)功能

对于通过CD、DVD或其它可移动媒介发售并可支持Autorun特性的应用程序来说,当软件盘片被第一次插入驱动器时,相关应用程序必须能够使用Autorun(自动运行)特性实现启动,或提示用户执行安装过程。在应用程序以多盘片方式发售的情况下,后续盘片也必须具备在插入驱动器后使用Autorun(自动运行)特性或在无须提示用户按键及执行其它操作的前提下继续运行安装过程的能力。

不允许要求用户通过依次点击“开始”/“运行”的方式从CD或DVD上启动应用程序安装过程。

在应用程序安装成功后,将CD或DVD重新插入驱动器的动作应不会导致安装程序的再次启动,但允许就是否需要对安装选项加以更新或修改向用户进行询问。


3.0 数据与设置管理:技术要求摘要

Windows XP配备了一个可面向用户数据、用户设置和计算机设置状态分隔提供相关支持的基础架构。正确运用该基础架构的应用程序将可为您提供下列好处:

  • 应用程序不会在由Limited Users(受限用户,非管理员)运行的情况下发生故障,以确保家庭成员或朋友能够以简便安全的方式对计算机进行共享。
  • 父母可在无须为子女授予管理优先权的前提下允许子女使用计算机,从而,避免使子女获得修改计算机设置所必需的无限访问权。
  • 用户可在无需备份应用程序或操作系统文件的前提下对个人文档执行备份操作。
  • 多位用户可对单一计算机进行共享,并分别拥有各自的喜好和设置。 <
LI>应用程序难以对快速用户切换特性的正常有效运行构成影响。

用户生成数据存储操作缺省指向适当位置

用户生成文件必须存储于相关用户的“My Documents”文件夹(或子文件夹)。而针对图像文件,则建议使用“My Pictures”文件夹来取代“My Documents”文件夹。依此类推,还应针对音频文件使用“My Music”文件夹。

用户第一次运行应用程序时,相关应用程序的文件/打开与文件/保存对话框必须在首次调用时缺省指向该用户的“My Documents”文件夹(或子文件夹)。而此后对上述文件夹进行调用时,则建议其缺省指向先前所选路径。

不得将用户喜好、应用程序状态及临时文件等应用程序数据存储于“My Documents”文件夹。

将“My Documents”作为数据存储缺省文件夹的选择主要具备以下优点:

  • 所有用户(包括那些具备受限帐户类型的用户)均拥有针对此位置的写入访问权限。
  • 用户可在其所熟悉的场所对全部自有数据进行组织和存储。
  • 由于使用“Common File Open”对话框的全部应用程序均能以简便快捷的方式对“My Documents”进行访问,因此,将可为应用程序之间的数据共享提供便利。
  • “My Documents”文件夹只是一个抽象位置,并可由管理员以透明方式重新定向至网络系统。
  • “My Documents”文件夹可被置于“开始”菜单。

应用程序数据的正确分类与存储

根据本技术要求所提供的指导原则对应用程序数据进行分类和存储将可为您提供下列好处:

  • 允许多名家庭成员共享同一台计算机,并有助于实现快速用户切换特性。
  • 实现与商务活动相关的操作(如漫游与脱机存储),并为操作系统及其应用程序提供安全保障。
  • 确保用户数据的一致性、抽象化存储位置,并以用户为单位对应用程序数据实施分隔。
  • 构成实现应用远程调用的关系因素。

妥善处理“拒绝访问”情况

在Window XP操作系统平台上,缺省情况下,受限用户帐号(如Windows XP Home Edition上的Limited User(受限用户))无法在诸如HKLM和Windows目录这样每台计算机都拥有的位置上执行写操作。只有前面所描述的那些能够正确分类与存储数据的应用程序才能避免拒绝访问错误并在安全环境中正常运行。

然而,也存在一些能够正确分类并存储数据的应用程序遇到拒绝访问错误的情况。

支持以受限用户的身份运行

应用程序不应要求用户为修改系统或其它文件与设置而具备自由访问权限(例如Administrator权限)。换而言之,应用程序必须在安全的Windows环境中正常工作。在此部分中遵守原先的技术要求将有助于确保应用程序符合这一技术要求。

未进行安装(无需安装任何组件即可执行)的应用程序仍需支持受限用户使用。

安全的Windows环境被定义为在全新安装的NTFS系统上缺省情况下暴露给受限用户(非管理员)的环境。在这种环境中,用户只能在本地计算机的特定位置上执行写操作:

  • 他们自己的注册表部分(HKEY_CURRENT_USER)
  • 他们自己的用户配置文件目录(HKEY_CURRENT_USER)
  • 共享文档位置(CSIDL_COMMON_DOCUMENTS)
  • 用户在系统驱动器根目录创建的文件夹

然而,缺省情况下使用这些文件夹的应用程序并不遵守这部分的其它技术要求。

用户同样可以在这些位置的子键和子目录中执行写操作。例如,由于CSIDL_PERSONAL(My Documents)是CSIDL_PROFILE的子目录,因此,用户可以对其进行写操作。对于系统中的其余部分,用户进行只读访问。

当应用程序的主要特性能够由非特权用户成功运行时,次要特性便允许出现故障。这些次要特性不得通过除完全安装以外的缺省方式(例如最小化安装或典型安装)进行安装,并且不得作为程序运行的重要部分。这种次要特性的示例包括支持原有文件格式所需的组件。

受限用户不能执行诸如磁盘碎片整理、备份/恢复、修改系统时间这样的系统管理功能。当应用程序的大多数主要功能为系统管理时,该应用程序仍必须能够通过Limited User(受限用户)帐号运行,并通知用户为何他无法使用任何特性。

0 0

相关博文

我的热门文章

img
取 消
img