检查应答文件

注意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

网络客户端

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

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

Params。postupgrade-ID

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

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

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

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

[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 节。 adapter2。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-Section 名称,以在 GUI 模式阶段执行。