检查应答文件

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

在正在升级的系统上显示“安装程序正在复制文件”进度栏之前,将立即创建 AnswerFile。 NetSetup 和供应商提供的网络迁移 DLL 在 AnswerFile 中创建部分,然后在 Winnt32 升级阶段向这些部分写入条目。

可以通过将 c:\$win_nt$.~bt\winnt.sif 复制到 %TEMP% 来检查 AnswerFile。 复制 AnswerFile 后,可以单击“ 取消 ”以取消文件复制。 不必等到文件复制完成。

下表列出了 AnswerFile 中的顶级部分以及每个部分包含的与网络组件相关的相应条目:

部分 包含的条目

NetAdapters

网络适配器,包括 ISDN 适配器

AsyncAdapters

异步适配器

NetProtocols

网络协议

NetServices

网络服务

NetClients

网络客户端

注意 Windows 8.1、Windows Server 2012 R2 及更高版本中已弃用 NetClient 组件。

对于在 Winnt32 阶段找到的每个网络组件,NetSetup 会将条目写入 AnswerFile 的相应顶级部分。 每个条目均具有以下格式:

Params。postupgrade-ID

postupgrade-ID 条目是 NetSetup 从组件的 netmap.inf 文件获取的 Windows 2000 或更高版本的设备 ID。

每个条目指定 AnswerFile 中该组件的 parameters 节的名称。 例如,如果组件的 Windows 2000 或更高版本设备 ID 为 netadapter2,则其在 NetAdapters 节中的条目为 params.netadapter2。 AnswerFile 中的顶级节和参数部分对网络迁移 DLL 不可见。

对于组件的参数节名称,NetSetup 会添加扩展 OemSection ,以便为组件创建 OEM 节 名称。 例如,如果组件的 parameters 节是 params.netadapter2,则组件的 OEM 节 名称为 params.netadapter2.OemSection。 NetSetup 将 OEM 节 名称作为 szSectionName 参数传递给由组件的网络迁移 DLL 提供的 DoPreUpgradeProcessing 函数。 DoPreUpgradeProcessing 函数调用 NetUpgradeAddSection 函数,为 AnswerFile 中的组件创建 OEM 节。 然后 ,DoPreUpgradeProcessing 函数调用 NetUpgradeAddLineToSection ,将特定于组件的信息添加到 OEM 节

AnswerFile 的以下部分显示其 Windows 2000 或更高版本设备 ID 为 adapter2 的网络适配器的部分和条目:

[NetAdapter]              ;top-level adapters section
adapter2=params.adapter2      ;entry for adapter2
[params.adapter2]          ;parameters section for adapter2
InfID=adapter2            ;Windows 2000 or later device ID
OemSection=params.adapter2.OemSection  ;Identifies the OemSection

[params.adapter2.OemSection]  ;OemSection created by migration DLL
InfToRunAfterInstall="", adapter2.SectionToRun ;Written by DLL

[adapter2.SectionToRun]      ;Section created by migration DLL
AddReg=adapter2.SectionToRun.AddReg ;AddReg directive

[adapter2.SectionToRun.AddReg] ;AddReg section created by DLL
HKR,0\0,IsdnPhoneNumber,0,"111-1111" ;AddReg entries written by DLL
HKR,0\1,IsdnPhoneNumber,0,"222-2222"
HKR,0\0,IsdnSpid,0,"111"
HKR,0\1,IsdnSpid,0,"222"
HKR,0,IsdnSwitchType,0x00010001,1

在 GUI 模式阶段,NetSetup 检测由迁移 DLL 写入到示例 AnswerFile 的 params.adapter2.OemSectionInfToRunAfterInstall 密钥。 根据此键指示,NetSetup 处理 adapter2。SectionToRun.AddReg 节。 适配器 2。SectionToRun.AddReg 部分指示 NetSetup 将参数值添加到 Windows 2000 或更高版本注册表中的 adapater2 实例键。 这些参数值应与迁移 DLL 在升级的 Winnt32 阶段期间从 adapter2 的注册表中读取的预升级参数值匹配。

如果要在 GUI 模式阶段加载网络迁移 DLL,其 DoPreUpgradeProcessing 函数将设置NUA_LOAD_POST_UPGRADE标志。 此标志使 NetSetup 将 OemDllToLoad 条目写入 AnswerFile 中组件的 parameters 节。 OemDllToLoad 条目会导致 NetSetup 在 GUI 模式阶段加载组件的迁移 DLL。

以下示例显示了在 GUI 模式阶段加载其网络迁移 DLL 的组件的 AnswerFile 部分和条目:

[NetAdapter]              ;top-level adapters section
adapter2=params.adapter2      ;entry for adapter2
[params.adapter2]          ;parameters section for adapter2
InfID=adapter2            ;postupgrade device ID
OemSection=params.adapter2.OemSection;Identifies the OemSection
OemDllToLoad=c:\temp\oem0001\migration.dll

请注意 params.adapter2 部分中的 OemDllToLoad 条目。 另请注意,迁移 DLL 未创建 params.adapter2.OemSection。 在 GUI 模式阶段加载迁移 DLL 时,它通常不会将 InfToRunAfterInstall 密钥写入 AnswerFile。 DLL 执行安装后升级;因此,它不需要创建包含 NetSetup 指令的 Oem 节 名称,以便在 GUI 模式阶段执行。