检查应答文件
注意 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.OemSection 的 InfToRunAfterInstall 密钥。 根据此键指示,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 模式阶段执行。