INF 版本區段

依照慣例, [版本] 區段會先出現在 INF 檔案中。 每個 INF 檔案都必須有這個區段。

[Version]
 
Signature="signature-name"
[Class=class-name]
[ClassGuid={nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}]
[Provider=%INF-creator%]
[ExtensionId={xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}]
[LayoutFile=filename.inf [,filename.inf]... ]  (Windows 2000 and Windows XP)
[CatalogFile=filename.cat]
[CatalogFile.nt=unique-filename.cat]
[CatalogFile.ntx86=unique-filename.cat]
[CatalogFile.ntia64=unique-filename.cat]  (Windows XP and later versions of Windows)
[CatalogFile.ntamd64=unique-filename.cat]  (Windows XP and later versions of Windows)
[CatalogFile.ntarm=unique-filename.cat]  (Windows 8 and later versions of Windows)
[CatalogFile.ntarm64=unique-filename.cat]  (Windows 10 version 1709 and later versions of Windows)

DriverVer=mm/dd/yyyy,w.x.y.z
[PnpLockDown=0|1] (Windows Vista and later versions of Windows)
[DriverPackageDisplayName=%driver-package-description%]
[DriverPackageType=PackageType]

項目

Signature=“signature-name
必須是 $Windows NT$$Chicago$。 這表示這個 INF 有效的作業系統。 這些簽章值具有下列意義。

簽章的值 意義
$Windows NT$ 所有 Windows 作業系統
$Chicago$ 所有 Windows 作業系統

需要 ($) 的括住貨幣符號字元,但這些字串不區分大小寫。 如果 簽章名稱 不是這些字串值,檔案就不會接受為有效的 INF。

一般而言,Windows 不會區分這些簽章值。 其中一個必須指定,但不重要。 您應該指定適當的值,讓讀取 INF 檔案的人員可以判斷其預定的作業系統。

某些類別安裝程式會針對如何指定簽章值,提出其他需求。 如果存在這類需求,請參閱此 Windows 驅動程式套件 (WDK) 的裝置類型特定章節。

INF 必須藉由將系統定義的擴充功能附加至其 DDInstall 區段來提供 OS 特定的安裝資訊,不論簽章名稱$Windows NT$ 還是 $Chicago$。 (如需這些延伸模組的討論,請參閱 建立多個平臺和操作系統的 INF 檔案 。)

Class=class-name
對於任何標準類型的裝置,這會針對使用此 INF 檔案安裝的裝置類型,指定 裝置安裝類別 的名稱。 此名稱通常是系統定義的類別名稱之一,例如 NetDisplay, 這些名稱列在 Devguid.h 中。 如需詳細資訊,請參閱 系統提供的裝置安裝類別

如果 INF 指定 類別,它也應該為其 ClassGUID 專案指定對應的系統定義 GUID 值。 為任何預先定義裝置安裝類別的裝置指定相符的 GUID 值,可以更快速地安裝裝置及其驅動程式,因為這可協助系統設定程式代碼優化其 INF 搜尋。

如果 INF 將裝置的新安裝類別新增至系統,它應該提供唯一且不區分大小寫的 類別名稱 值,與 Devguid.h 中任何系統提供的類別不同。 類別名稱字串的長度必須是32個字元或更少。 INF 必須為 ClassGUID 專案指定新產生的 GUID 值。 另請參閱 INF ClassInstall32 一節

此專案與 INF 無關,該 INF 不會在預先定義的裝置安裝類別下安裝新的設備驅動器,也不會安裝新的裝置安裝類別。

注意

透過 隨插即用 (PnP) 管理員安裝的設備驅動器需要此專案。

ClassGuid={nnnnnn-nnnn-nn--}
指定 裝置安裝類別 GUID。 GUID 值的格式如下,其中每個 n 都是十六進位數位。

此 GUID 值會指定裝置安裝類別,以指派給從這個 INF 檔案安裝的裝置。 這個類別特定的 GUID 值也會識別裝置類別安裝程式的裝置類別安裝程式,如果有的話,則為裝置和類別特定的屬性頁提供者類型。

針對新的 裝置安裝類別,INF 必須指定新產生的 ClassGUID 值。 如需如何建立 GUID 的詳細資訊,請參閱 在驅動程式中使用 GUID。 另請參閱裝置安裝類別。

注意

透過 PnP 管理員安裝的設備驅動器需要此專案。

ExtensionId={xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
指定撰寫 延伸模組 INF 時的擴充功能識別碼 GUID。 GUID 值的格式如下,其中每個 x 都是十六進位數位。

建立擴充功能 INF 的初始版本時,INF 必須指定新產生的 ExtensionId 值。 不過,更新現有的擴充功能 INF 時, ExtensionId 必須維持不變,如此一來,擴充功能 INF 的多個相關版本會彼此建立版本,而不是被視為可同時安裝在相同裝置實例上的獨立擴充功能 INF。 如需如何撰寫擴充功能 INF 的詳細資訊,請參閱 使用擴充功能 INF 檔案

注意

只有在建立延伸模組 INF 時,才需要此專案,如指定 Class = ExtensionClassGuid = {e2f84ce7-8efa-411c-aa69-97454ca4cb57}所識別。

ClassVer=major
除非裝置類別明確要求,例如 Printer,否則保留供系統使用。 例如,請參閱 V4 驅動程式 INF

Provider=%INF-creator%
識別 INF 檔案的提供者。 一般而言,這會指定為%組織名稱%令牌,稍後會在 INF 檔案的 Strings 區段中展開。 提供者名稱的最大長度,以字元為單位LINE_LEN。

例如,系統提供的 INF 檔案通常會將 INF 建立者指定為 %Msft%,並在其 Strings 區段中定義 %Msft% = “Microsoft”。

注意

透過 PnP 管理員安裝的設備驅動器需要此專案。

CatalogFile=filename.cat
指定目錄 (。cat) 檔案包含在驅動程式套件的散發媒體上。

驅動程式套件 提交至 Microsoft 進行數位簽名時,WHQL 會在 WHQL 測試並指派數位簽名給套件之後,提供驅動程式套件的 類別目錄檔案 。 如需 IHV 或 OEM 驅動程式套件測試和簽署的詳細資訊,請參閱 WHQL 發行簽章。 目錄檔案不會列在 INF 的 SourceDisksFiles 區段或 CopyFiles 指示詞中。 Windows 假設目錄檔案位於與 INF 檔案相同的位置。

系統提供的 INF 檔案永遠不會有 CatalogFile= 項目,因為操作系統會針對所有系統提供的 xxx.cat 檔案,驗證這類 INF 的簽章。

CatalogFile.nt=unique-filename.cat |
CatalogFile.ntx86=unique-filename.cat |
CatalogFile.ntia64=unique-filename.cat |
CatalogFile.ntamd64=unique-filename.cat
CatalogFile.ntarm=unique-filename.cat
CatalogFile.ntarm64=unique-filename.cat

使用 指定另一個 INF 寫入器決定的唯一檔名。類別 目錄檔案的 cat 擴展名。 如果省略這些選擇性專案,則會使用指定的 CatalogFile=filename.cat 來驗證 WDM 裝置/驅動程式安裝。

如果有任何裝飾 的 CatalogFile。xxx= 專案存在於 INF 的 Version 區段中,以及未重設的 CatalogFile= 專案,系統會假設未取消編碼的專案識別用來驗證裝置安裝、驅動程式安裝,或兩者在未指定裝飾專案之平臺上的 filename.cat

任何具有 CatalogFile= 和 CatalogFile 的跨平台設備驅動器 INF 檔案 xxx= 項目必須為每個這類 .cat 檔案提供唯一的 IHV/OEM 決定名稱。

如需如何使用系統定義 .nt.ntx86.ntia64、.ntamd64.ntarm.ntarm64 延伸模組的詳細資訊,請參閱建立多個平臺和操作系統的 INF 檔案

注意

由於所有支持的平臺都可以使用相同的 .cat 檔案,因此不需要或建議使用此專案。 不過,如果您想要為驅動程式套件建立平臺特定的 .cat 檔案,則必須使用此專案。

DriverVer=mm/dd/yyyy,w.x.y.z
此專案會指定此 INF 檔案所安裝之驅動程式的版本資訊。 從 Windows 2000 開始,需要此專案。

如需如何指定此項目的詳細資訊,請參閱 INF DriverVer 指示詞

PnpLockDown=0|1
指定 隨插即用 (PnP) 是否防止應用程式直接修改驅動程式套件 INF 檔案指定的檔案。 如果 PnpLockDown 指示詞設定為 1,PnP 會防止應用程式直接修改 INF CopyFiles 指示詞所複製的檔案。 否則,如果指示詞未包含在 INF 檔案中,或指示詞的值設定為零,則具有系統管理員許可權的應用程式可以直接修改這些檔案。 以這種方式保護的驅動程式檔案稱為 第三方受保護的驅動程序檔案

為了確保 PnP 驅動程式安裝的完整性,應用程式不應該直接修改驅動程式套件 INF 檔案所複製的驅動程式檔案。 應用程式應該只使用 Windows 提供的裝置安裝機制來更新 PnP 驅動程式。

從 Windows Vista 開始,驅動程式套件應該將 PnpLockDown 設定為 1,以防止應用程式直接修改驅動程式檔案。 不過,卸載驅動程式套件的某些現有應用程式會直接刪除驅動程式檔案。 為了維持與這些應用程式的相容性,這類驅動程式套件的 PnpLockDown 指示詞應設定為零。

注意

雖然 Windows Vista 和更新版本的 Windows 上的 PnP 不需要 INF 檔案包含 PnpLockDown 指示詞才能安裝驅動程式,但未來版本的 Windows 中的 PnP 可能需要 PnP 驅動程式套件 的 INF 檔案包含 PnpLockDown 指示詞。

DriverPackageDisplayName=%driver-package-description%
已取代。 先前由驅動程式安裝架構 (DIFx) 使用。 如需 DIFx 淘汰的相關信息,請參閱 DIFx 指導方針

DriverPackageType=PackageType
已取代。 先前由驅動程式安裝架構 (DIFx) 使用。 如需 DIFx 淘汰的相關信息,請參閱 DIFx 指導方針

備註

驅動程式套件 通過 Microsoft Windows Hardware Quality Lab (WHQL) 測試時,WHQL 會將 .cat 類別目錄檔案傳回 IHV 或 OEM。 每個 .cat 檔案都包含驅動程式套件的數位加密簽章。 IHV 或 OEM 必須在 INF 版本區段中列出這些 .cat 檔案,而且必須在與 INF 檔案相同的位置提供散發媒體上的檔案。 .cat 檔案必須解壓縮。

注意

如果 INF 版本區段不包含至少一個 CatalogFile 或 CatalogFile.ntxxx 專案,驅動程式會被視為未簽署,而且 Windows 不會顯示 DriverVer 指示詞中列出的日期。

如需詳細資訊,請參閱 驅動程序簽署

範例

下列範例顯示簡單驅動程式套件 INF 的一般版本區段,後面接著此範例 Version 區段所隱含的必要 SourceDisksNamesSourceDisksFiles 區段:

[Version]
Signature="$Windows NT$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%INF_Provider%
CatalogFile=example.cat
DriverVer=01/29/2010,1.2.3.4
PnpLockdown=1

[SourceDisksNames]
;
; diskid = description[, [tagfile] [, <unused>, subdir]]
;
1 = %Disk_Description%,,,\WinNT

[SourceDisksFiles.x86]
;
; filename_on_source = diskID[, [subdir][, size]]
;
exampleDriver.sys = 1,\x86

; ...

[Strings]
INF_Provider="Contoso"
Disk_Description = "Contoso Drivers Disk"
; ...

另請參閱

DDInstall

SourceDisksNames

SourceDisksFiles

字串