共用方式為


檢查 AnswerFile

注意 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 或更新版本裝置識別碼。

每個專案都會指定 AnswerFile 中該元件的參數區段名稱。 例如,如果元件的 Windows 2000 或更新版本裝置識別碼是 netadapter2,則 NetAdapters 區段中的專案是 params.netadapter2。 網路移轉 DLL 看不到最上層區段和 AnswerFile 中的參數區段。

在元件的參數區段名稱中,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 或更新版本裝置識別碼為 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 所撰寫的 InfToRunAfterInstall 金鑰,並偵測到範例 AnswerFile 的 params.adapter2.OemSection 。 依此機碼指示,NetSetup 會處理 adapter2。SectionToRun.AddReg 區段。 adapter2。SectionToRun.AddReg 區段會指示 NetSetup 將參數值新增至 Windows 2000 或更新版本的登錄中的 adapater2 實例機碼。 這些參數值應該符合移轉 DLL 在升級的 Winnt32 階段期間從 adapter2 讀取登錄的預先升級參數值。

如果要在 GUI 模式階段載入網路移轉 DLL,其 DoPreUpgradeProcessing 函式會設定NUA_LOAD_POST_UPGRADE旗標。 此旗標會導致 NetSetup 將 OemDllToLoad 專案寫入 AnswerFile 中的元件參數區段。 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 會執行安裝後置升級;因此,它不需要建立 Oem-Section 名稱,其中包含在 GUI 模式階段期間執行的 NetSetup 指示詞。