网络升级过程的 Winnt32 阶段

注意 Microsoft Windows XP (SP1 及更高版本) 、Microsoft Windows Server 2003 及更高版本的操作系统不支持供应商提供的网络升级。

用户或系统管理员通过执行以下操作之一启动升级过程:

  • 在 Windows 2000 或更高版本 CD-ROM 启动后显示的用户界面中选择组件升级

  • 在 CD-ROM 上选择并运行\i386\winnt32.exe

如果用户或系统管理员已在要升级的系统上设置了NETUPGRD_INIT_FILE_DIR环境变量,NetSetup 会在该变量指定的目录中搜索 netupg.inf 文件。 netupg.inf 文件仅包含一个部分: OemNetUpgradeDirs。 本节中的每个条目指定目录的完整路径,该目录包含供应商提供的升级文件(包括网络组件的 netmap.inf 文件)。 如果未设置NETUPGRD_INIT_FILE_DIR环境变量,NetSetup (netupgrd.dll) 在其自己的目录中查找 netmap.inf 文件。

NetSetup 读取 netmap.inf 文件,以识别没有内置升级支持的网络组件。 如果 NetSetup 在无人参与模式下运行,则显示向导;但是,用户或系统管理员无法使用向导。 如果 NetSetup 未在无人参与模式下运行,向导将显示没有内置升级支持的网络组件的列表。

使用向导,用户或系统管理员可以:

  • 单击“ 取消 ”以中止操作系统的安装。

  • 单击“ 下一步 ”安装操作系统,而不升级列出的网络组件。

  • 为列出的网络组件指定供应商提供的升级文件的驱动器和目录位置。

    NetSetup 读取指定位置的 netmap.inf 文件,并将供应商在该位置提供的升级文件复制到系统硬盘上的临时目录。 此临时目录将成为供应商提供的网络迁移 DLL 的工作目录。 NetSetup 还会从向导的组件列表中删除具有 netmap.inf 文件的任何组件。

NetSetup 在 $Win_nt$.~bt 目录中生成 winnt.sif 文件 (也称为 AnswerFile) ,该文件通常位于 C: 驱动器上。

NetSetup 生成 AnswerFile,如下所示:

  1. NetSetup 读取预升级系统的注册表以枚举每个网络组件。 对于具有内置升级支持的每个网络组件,NetSetup 会将从注册表中读取的信息写入 AnswerFile。

  2. 对于每个没有内置升级支持的网络组件,NetSetup 将读取组件的 netmap.inf 文件。 netmap.inf 文件将网络组件的预升级设备、硬件或兼容 ID 映射到升级后的操作系统中的相应 ID。 如果 NetSetup 将其从注册表中读取的网络组件的预升级 ID 与 netmap.inf 文件的 OemNetAdaptersOemNetProtocolsOemNetServicesOemAsyncAdapters 部分中的预升级 ID 匹配,NetSetup 会将组件供应商提供的信息写入 AnswerFile。

  3. NetSetup 使用组件的操作系统设备、硬件或兼容 ID 读取 netmap.inf 文件的 OemUpgradeSupport 部分,以确定要加载的网络迁移 DLL。 然后,NetSetup 加载网络迁移 DLL,并调用 DLL 的 PreUpgradeInitialize 函数。 PreUpgradeInitialize 函数提供 DLL 用于初始化自身的信息。

  4. NetSetup 为网络迁移 DLL 支持的每个网络组件调用 DLL 的 DoPreUpgradeProcessing 函数一次。 DoPreUpgradeProcessing 从注册表中读取网络组件的预升级参数值,并调用 NetUpgradeAddSectionNetUpgradeAddLineToSection 函数将这些参数以及其他特定于组件的信息写入 AnswerFile。 DoPreUpgradeProcessing 还可以通过在 AnswerFile 中创建适当的条目来迁移与预升级组件关联的二进制数据。

  5. 完全生成 AnswerFile 后,NetSetup 会将供应商提供的升级文件复制到相应的目录,然后启动到升级过程的文本模式阶段。