INF ClassInstall32 區段

警告

如果您要建置通用或 Windows 驅動程式套件,本節無效。 請參閱搭配 Windows 驅動程式使用通用 INF 檔案和 使用者入門。

ClassInstall32 區段會為新類別中的裝置安裝新的裝置安裝類別

[ClassInstall32] | 
[ClassInstall32.nt] | 
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows) 
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows) 

AddReg=add-registry-section[,add-registry-section]...
[AddProperty=add-property-section[,add-property-section] ...]  (Windows Vista and later versions of Windows)
[Copyfiles=@filename | file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...]
[DelProperty=del-property-section[,del-property-section] ...]  (Windows Vista and later versions of Windows)
[Delfiles=file-list-section[,file-list-section]...]
[Renfiles=file-list-section[,file-list-section]...]
[BitReg=bit-registry-section[,bit-registry-section]...]
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]

項目

AddReg=add-registry-section[,add-registry-section]...
參考一或多個具名區段,其中包含要寫入登錄中的類別特定值專案。 一般而言,這會用來提供新的裝置安裝類別至少一個易記名稱,讓其他元件稍後可以從登錄擷取,並使用 開啟這個新裝置類別的已安裝裝置,或為此裝置安裝類別「安裝」任何屬性頁提供者等等。

任何 add-registry-section 中的 HKR 規格會指定包含該類別設定的登錄機碼。 如需詳細資訊,請參閱下列一節。

如需詳細資訊,請參閱 INF AddReg 指示詞

AddProperty=add-property-section[,add-property-section]...
(Windows Vista 和更新版本的 Windows) 參考一或多個 INF 檔案區段,這些區段會修改為裝置安裝類別設定的裝置屬性。 您應該只使用 INF AddProperty 指示詞 來設定 Windows Vista 或更新版本的 Windows 作業系統新增的裝置安裝類別屬性。

對於先前在 Windows Server 2003、Windows XP 或 Windows 2000 上引進且具有對應登錄專案值的裝置類別屬性,您應該繼續使用 INF AddReg 指示詞 來設定裝置安裝類別屬性。 這些指導方針適用於系統定義的屬性和自定義屬性。

如需如何使用 AddProperty 指示詞的詳細資訊,請參閱 使用 INF AddProperty 指示詞和 INF DelProperty 指示詞

Copyfiles=@filename | file-list-section[,file-list-section]...
指定要從來源媒體複製到目的地的一個具名檔案,或參考指定來源媒體上類別相關檔案以傳送至目的地的一或多個具名區段。 INF 之 DestinationDirs 區段中的 DefaultDestDir 專案會指定要複製之任何類別特定單一檔案的目的地目錄。

如需詳細資訊,請參閱 INF CopyFiles 指示詞

注意

裝置安裝類別的系統提供的 INF 檔案不會在本節中使用這個指示詞。

DelReg=del-registry-section[,del-registry-section]...
參考一或多個具名區段,在安裝類別安裝程序期間,要從登錄中移除值專案或機碼。

不過,如果特定的 {SetupClassGUID} 已以已安裝的類別存在,則系統安裝程式程式代碼會後續忽略任何 INF 的 ClassInstall32 區段,以在其 Version 區段中指定相同的 GUID 值。 因此,INF 無法取代現有的類別安裝程式,或修改其 來自 ClassInstall32 區段的行為。

如需詳細資訊,請參閱 INF DelReg 指示詞

DelProperty=del-property-section[,del-property-section]...
(Windows Vista 和更新版本的 Windows) 參考一或多個 INF 檔案區段,這些區段會刪除為裝置安裝類別設定的裝置屬性。 您應該只使用 INF DelProperty 指示詞 來刪除 Windows Vista 或更新版本的 Windows 操作系統新增的裝置安裝類別屬性。

對於先前在 Windows Server 2003、Windows XP 或 Windows 2000 上引進且具有對應登錄專案值的裝置類別屬性,您應該繼續使用 INF DelReg 指示詞 來刪除裝置安裝類別屬性。 這些指導方針適用於系統定義的屬性和自定義屬性。

如需如何使用 DelProperty 指示詞的詳細資訊,請參閱 使用 INF AddProperty 指示詞和 INF DelProperty 指示詞

Delfiles=file-list-section[,file-list-section]...
參考目的地上先前安裝類別相關檔案的一或多個具名區段,以供刪除。

如需詳細資訊,請參閱 INF DelFiles 指示詞

Renfiles=file-list-section[,file-list-section]...
參考目的地上要重新命名之類別相關檔案的一或多個具名區段。

如需詳細資訊,請參閱 INF RenFiles 指示詞

BitReg=bit-registry-section[,bit-registry-section]...
在本節中有效,但幾乎從未使用過。

如需詳細資訊,請參閱 INF BitReg 指示詞

UpdateInis=update-ini-section[,update-ini-section]...
在本節中有效,但幾乎從未使用過。

如需詳細資訊,請參閱 INF UpdateInis 指示詞

UpdateIniFields=update-inifields-section[,update-inifields-section]...
在本節中有效,但幾乎從未使用過。

如需詳細資訊,請參閱 INF UpdateIniFields 指示詞

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
在本節中有效,但幾乎從未使用過。

如需詳細資訊,請參閱 INF UpdateIniFields 指示詞

備註

您應該只在裝置 INF 檔案中包含 ClassInstall32 區段,才能安裝新的自定義裝置安裝類別。 安裝類別中裝置的 INF 檔案,不論是 系統提供的裝置安裝類別 還是自定義類別,都不應該包含 ClassInstall32 區段。 因為系統只有在尚未安裝類別時才處理 ClassInstall32 區段,所以您無法使用 ClassInstall32 區段來重新安裝或變更已安裝之類別的設定。 特別是,您無法使用 ClassInstall32 區段,為已安裝的類別新增類別共同安裝程式或類別篩選驅動程式。 如需如何安裝共同安裝程式和篩選驅動程式的資訊,請參閱 撰寫共同安裝程式安裝篩選驅動程式

一般而言, ClassInstall32 區段具有一或多個 AddReg 指示詞,以在登錄中系統提供的 SetupClassGUID 子機碼下新增專案。 這些專案可以包含類別特定的「易記名稱」、類別安裝程式路徑、類別圖示、屬性頁提供者等等。

除了 AddRegCopyFiles 之外,這裏顯示的其他指示詞很少用於 ClassInstall32 區段。

若要支持驅動程式檔案的多平臺散發,請建構平臺特定的 ClassInstall32 區段。 例如,處理 ClassInstall32 區段的所有系統 SetupAPI 函式都會先在 x86 平臺上搜尋 ClassInstall32.ntx86 區段,而且如果找不到 ClassInstall32.ntx86 區段,則只會檢查未編碼的 ClassInstall32.ntx86 區段。 如需如何使用系統定義 .nt.ntx86.ntia64、.ntamd64.ntarm.ntarm64 延伸模組的詳細資訊,請參閱建立多個平臺和操作系統的 INF 檔案

注意

ClassInstall32 區段名稱也用於 64 位平臺上的安裝。

從 Windows 2000 開始,每個已安裝的裝置都會與 裝置安裝類別相關聯。 如果要安裝之裝置的 INF 未與新的裝置類別安裝程式相關聯,或如果 Version 區段中的ClassGUID= 規格不符合系統定義的安裝類別 GUID,該裝置就會與名稱為 “Unknown” 的裝置安裝類別相關聯。

任何裝置類別安裝程式的 INF 在其 ClassInstall32 區段中通常會有 AddReg 指示詞,以定義至少一個具名區段,以為其類型裝置建立易記名稱。 安裝程式代碼會在安裝新 (新) 安裝類別的第一個裝置時,從 INF 版本區段中為ClassGUID= 專案提供的值,自動在登錄的適當位置建立 SetupClassGUID 機碼。

INF 可以使用其 ClassInstall32 區段中參考的 add-registry 區段來指定屬性頁提供者,並控制其在使用者介面中處理其裝置類別的方式。

這類類別特定的 add-registry 區段具有下列一般形式:

[SetupClassAddReg]
 
HKR,,,,%DevClassName% ; device-class friendly name 
[HKR,,Installer32,,"class-installer.dll,class-entry-point"] 
[HKR,,EnumPropPages32,,"prop-provider.dll,provider-entry-point"]
HKR,,Icon,,"icon-number" 
[HKR,,SilentInstall,,1]
[HKR,,NoInstallClass,,1]
[HKR,,NoDisplayClass,,1]

系統會使用指定的圖示來代表您的安裝程式給使用者。

  • 如果 Icon 值是正數,則表示資源的資源識別碼。 如果指定 Installer32 金鑰,或從屬性頁 DLL 擷取資源,則會從類別安裝程式 DLL 擷取資源。如果已指定 EnumPropPages32 機碼,則為 。 值 “0” 代表 DLL 中的第一個圖示。 保留值 “1”。
  • 如果 [圖示] 值為負數,則絕對值為 SetupApi.DLL 中圖標的資源標識符。

在類別特定登錄機碼中設定預先定義的 SilentInstallNoDisplayClassNoInstallClass 布爾值專案有下列效果:

  • 設定 SilentInstall 會指示安裝程式傳送任何快顯訊息給安裝此類別的裝置時需要回應的使用者,無論是在類別安裝程式 INF 檔案的 DDInstall 區段中指定,或是在個別的 INF 檔案中針對後續安裝且宣告此類別本身的裝置,在各自的 Version 區段中設定相同的 ClassGuid={ClassGUID} 規格。 例如,CD-ROM 和磁碟裝置的系統類別安裝程式,以及系統平行埠類別安裝程式會在其各自的登錄機碼中設定 SilentInstall。

    如果特定類別安裝程式要求計算機針對其安裝的任何裝置重新啟動,其 INF 中的類別特定載入登錄區段不能有這個值專案。

  • 設定 NoDisplayClass 會藉由 裝置管理員 隱藏此類別所有裝置的使用者可見顯示。 例如,印表機的系統類別安裝程式以及網路驅動程式的系統類別安裝程式 (包括用戶端、服務和通訊協定,) 在其各自的登錄機碼中設定 NoDisplayClass。

  • 設定 NoInstallClass 表示使用者不需要手動安裝此類型的裝置。 例如,獨佔 隨插即用 (PnP) 裝置的系統類別安裝程式會在其各自的登錄機碼中設定 NoInstallClass。

ClassInstall32 區段可以包含 AddReg 指示詞來設定其設定類別之裝置的 DeviceTypeDeviceCharacteristicsSecurity。 如需詳細資訊 ,請參閱 INF AddReg 指示詞

範例

這個範例會顯示 ClassInstall32 區段,以及它參考 AddReg 指示詞的具名區段。

[ClassInstall32] 
AddReg=example_class_addreg

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,Icon,,"-1"

相較之下,此範例會設定類別特定的屬性頁提供者。 此 INF 也會將類別索引鍵中的 SilentInstallNoInstallClass 值項目設定為 TRUE (1) 。

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,EnumPropPages32,,"ExampleBinary.Dll,ExamplePropPageProvider"
HKR,,SilentInstall,,1
HKR,,NoInstallClass,,1
HKR,,Icon,,"101"

另請參閱

AddProperty

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelProperty

DelReg

Ini2Reg

模型

RenFiles

SetupDiBuildClassInfoList

UpdateIniFields

UpdateInis

版本