共用方式為


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 區段,以提供作業系統特定的安裝資訊,無論 簽章名稱$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={nn-nnnn-nn}--
指定 裝置安裝類別 GUID。 GUID 值的格式如下,其中每個 n 都是十六進位數位。

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

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

注意

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

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

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

注意

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

ClassVer=major次要
除非印表機等裝置類別明確要求,否則保留給系統使用。 例如,請參閱 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 的版本區段中,以及未編碼的 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 硬體質量實驗室 (WHQL) 測試時,WHQL 會將 .cat 類別目錄檔案傳回 IHV 或 OEM。 每個 .cat 檔案都包含驅動程式套件的數位加密簽章。 IHV 或 OEM 必須在 INF 版本區段中列出這些 .cat 檔案,而且必須在與 INF 檔案相同的位置提供散發媒體上的檔案。 .cat 檔案必須解壓縮。

注意

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

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

範例

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

[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

字串