Bagian Versi INF
Menurut konvensi, bagian Versi muncul terlebih dahulu dalam file INF. Setiap file INF harus memiliki bagian ini.
[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]
Entri
Signature="signature-name"
Harus $Windows NT$ atau $Chicago$. Ini menunjukkan sistem operasi yang INF ini valid. Nilai tanda tangan ini memiliki arti berikut.
Nilai tanda tangan | Makna |
---|---|
$Windows NT$ | Semua sistem operasi Windows |
$Chicago$ | Semua sistem operasi Windows |
Karakter tanda dolar penutup ($) diperlukan tetapi string ini tidak peka huruf besar/kecil. Jika nama tanda tangan bukan nilai string ini, file tidak diterima sebagai INF yang valid.
Umumnya, Windows tidak membedakan antara nilai tanda tangan ini. Salah satunya harus ditentukan, tetapi tidak masalah yang mana. Anda harus menentukan nilai yang sesuai sehingga seseorang yang membaca file INF dapat menentukan sistem operasi yang dimaksudkannya.
Beberapa penginstal kelas menempatkan persyaratan tambahan tentang bagaimana nilai tanda tangan harus ditentukan. Persyaratan tersebut, jika ada, dibahas di bagian khusus jenis perangkat dari Windows Driver Kit (WDK) ini.
INF harus menyediakan informasi penginstalan khusus OS dengan menambahkan ekstensi yang ditentukan sistem ke bagian DDInstall-nya, apakah nama tanda tangan $Windows NT$ atau $Chicago$. (Lihat Membuat File INF untuk Beberapa Platform dan Sistem Operasi untuk diskusi ekstensi ini.)
Class=class-name
Untuk jenis perangkat standar apa pun, ini menentukan nama kelas penyiapan perangkat untuk jenis perangkat yang diinstal dengan menggunakan file INF ini. Nama ini biasanya merupakan salah satu nama kelas yang ditentukan sistem, seperti Net atau Display, yang tercantum dalam Devguid.h. Untuk informasi selengkapnya, lihat Kelas Penyiapan Perangkat yang Disediakan Sistem.
Jika INF menentukan Kelas, INF juga harus menentukan nilai GUID yang ditentukan sistem yang sesuai untuk entri ClassGUID-nya. Menentukan nilai GUID yang cocok untuk perangkat dari kelas penyiapan perangkat yang telah ditentukan sebelumnya dapat menginstal perangkat dan drivernya lebih cepat karena ini membantu kode penyiapan sistem untuk mengoptimalkan pencarian INF-nya.
Jika INF menambahkan kelas penyiapan baru perangkat ke sistem, INF harus menyediakan nilai nama kelas yang unik dan tidak peka huruf besar/kecil yang berbeda dari salah satu kelas yang disediakan sistem di Devguid.h. Panjang string nama kelas harus 32 karakter atau kurang. INF harus menentukan nilai GUID yang baru dibuat untuk entri ClassGUID . Lihat juga Bagian INF ClassInstall32.
Entri ini tidak relevan dengan INF yang menginstal driver perangkat baru di bawah kelas penyiapan perangkat yang telah ditentukan sebelumnya atau kelas penyiapan perangkat baru.
Catatan
Entri ini diperlukan untuk driver perangkat yang diinstal melalui manajer Plug and Play (PnP).
ClassGuid={nnnnnnnn-nnnn-nnnn-nnnnnnnnnnnn}-
Menentukan GUID kelas penyiapan perangkat. Nilai GUID diformat seperti yang ditunjukkan di sini, di mana setiap n adalah digit heksadesimal.
Nilai GUID ini menentukan kelas penyiapan perangkat untuk ditetapkan ke perangkat yang diinstal dari file INF ini. Nilai GUID khusus kelas ini juga mengidentifikasi penginstal kelas perangkat untuk jenis perangkat dan penyedia halaman properti khusus kelas, jika ada.
Untuk kelas penyiapan perangkat baru, INF harus menentukan nilai ClassGUID yang baru dibuat. Untuk informasi selengkapnya tentang cara membuat GUID, lihat Menggunakan GUID di Driver. Lihat juga Kelas Penyiapan Perangkat.
Catatan
Entri ini diperlukan untuk driver perangkat yang diinstal melalui manajer PnP.
ExtensionId={xxxxxxxx-xxxx-xxxx-xxxx-xxx}
Menentukan GUID ID ekstensi saat menulis INF ekstensi. Nilai GUID diformat seperti yang ditunjukkan di sini, di mana setiap x adalah digit heksadesimal.
Saat membuat versi awal ekstensi INF, INF harus menentukan nilai ExtensionId yang baru dibuat. Namun, saat memperbarui INF ekstensi yang ada, ExtensionId harus tetap sama sehingga beberapa versi terkait dari INF ekstensi di-versi satu sama lain alih-alih diperlakukan sebagai INF ekstensi independen yang mungkin diinstal secara bersamaan pada instans perangkat yang sama. Untuk informasi selengkapnya tentang cara menulis INF ekstensi, lihat Menggunakan File INF Ekstensi.
Catatan
Entri ini hanya diperlukan saat membuat INF ekstensi, seperti yang diidentifikasi dengan menentukan Class = Extension
dan ClassGuid = {e2f84ce7-8efa-411c-aa69-97454ca4cb57}
.
ClassVer=major.Kecil
Dicadangkan untuk penggunaan sistem kecuali secara eksplisit diperlukan oleh kelas perangkat seperti Printer. Misalnya, lihat INF Driver V4.
Penyedia=%INF-creator%
Mengidentifikasi penyedia file INF. Biasanya, ini ditentukan sebagai %token OrganizationName% yang diperluas nanti di bagian String file INF. Panjang maksimum, dalam karakter, dari nama penyedia adalah LINE_LEN.
Misalnya, file INF yang disediakan dengan sistem biasanya menentukan pembuat INF sebagai% Msft% dan menentukan% Msft% = "Microsoft" di bagian String mereka.
Catatan
Entri ini diperlukan untuk driver perangkat yang diinstal melalui manajer PnP.
CatalogFile=filename.cat
Menentukan katalog (.cat) yang akan disertakan pada media distribusi paket driver.
Ketika paket driver dikirimkan ke Microsoft untuk penandatanganan digital, WHQL menyediakan file katalog untuk paket driver setelah WHQL menguji dan menetapkan tanda tangan digital ke paket. Untuk informasi selengkapnya tentang pengujian dan penandatanganan paket driver IHV atau OEM, lihat Tanda Tangan Rilis WHQL. File katalog tidak tercantum di bagian SourceDisksFiles atau direktif CopyFiles dari INF. Windows mengasumsikan bahwa file katalog berada di lokasi yang sama dengan file INF.
File INF yang disediakan sistem tidak pernah memiliki entri CatalogFile= karena sistem operasi memvalidasi tanda tangan untuk INF tersebut terhadap semua file xxx.cat yang disediakan sistem.
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
Menentukan nama file unik yang ditentukan inf-writer lainnya, dengan .ekstensi kucing , dari file katalog. Jika entri opsional ini dihilangkan, CatalogFile=filename.cat tertentu digunakan untuk memvalidasi penginstalan perangkat/driver WDM.
Jika ada CatalogFile yang didekorasi.Entri xxx ada di bagian Versi INF bersama dengan entri CatalogFile= yang tidak terdekorasi, entri yang tidak terdekorasi diasumsikan untuk mengidentifikasi filename.cat untuk memvalidasi penginstalan perangkat, penginstalan driver, atau keduanya pada platform yang entri yang didekorasi tidak ditentukan.=
Setiap file INF driver perangkat lintas platform yang memiliki CatalogFile= dan CatalogFile.Entri xxx= harus memberikan nama unik yang ditentukan IHV/OEM untuk setiap file .cat tersebut.
Untuk informasi selengkapnya tentang cara menggunakan ekstensi .nt, .ntx86, .ntia64, .ntamd64, .ntarm, dan .ntarm64 yang ditentukan sistem, lihat Membuat File INF untuk Beberapa Platform dan Sistem Operasi.
Catatan
Karena file .cat yang sama dapat digunakan di semua platform yang didukung, penggunaan entri ini tidak diperlukan atau disarankan. Namun, Anda harus menggunakan entri ini jika ingin membuat file .cat khusus platform untuk paket driver Anda.
DriverVer= mm/dd/yyyy,w.x.y.z
Entri ini menentukan informasi versi untuk driver yang diinstal oleh file INF ini. Dimulai dengan Windows 2000, entri ini diperlukan.
Untuk informasi tentang cara menentukan entri ini, lihat Petunjuk DriverVer INF.
PnpLockDown=0|1
Menentukan apakah Plug and Play (PnP) mencegah aplikasi secara langsung memodifikasi file yang ditentukan file INF paket driver. Jika arahan PnpLockDown diatur ke 1, PnP mencegah aplikasi memodifikasi file yang disalin secara langsung oleh direktif INF CopyFiles . Jika tidak, jika direktif tidak disertakan dalam file INF atau nilai arahan diatur ke nol, aplikasi yang memiliki hak istimewa administrator dapat langsung memodifikasi file-file ini. File driver yang dilindungi dengan cara ini disebut sebagai file driver yang dilindungi pihak ketiga.
Untuk memastikan integritas penginstalan driver PnP, aplikasi tidak boleh langsung memodifikasi file driver yang disalin oleh file INF paket driver. Aplikasi hanya boleh menggunakan mekanisme penginstalan perangkat yang disediakan oleh Windows untuk memperbarui driver PnP.
Dimulai dengan Windows Vista, paket driver harus mengatur PnpLockDown ke 1 untuk mencegah aplikasi memodifikasi file driver secara langsung. Namun, beberapa aplikasi yang ada yang menghapus instalan paket driver secara langsung menghapus file driver. Untuk mempertahankan kompatibilitas dengan aplikasi ini, arahan PnpLockDown untuk paket driver tersebut harus diatur ke nol.
Catatan
Meskipun PnP pada Windows Vista dan versi Windows yang lebih baru tidak mengharuskan file INF menyertakan arahan PnpLockDown untuk menginstal driver, PnP dalam versi Windows yang akan datang mungkin mengharuskan file INF untuk paket driver PnP menyertakan arahan PnpLockDown.
DriverPackageDisplayName=%driver-package-description%
Ditolak. Sebelumnya digunakan oleh Driver Install Frameworks (DIFx). Untuk informasi tentang penghentian DIFx, lihat Panduan DIFx.
DriverPackageType= PackageType
Ditolak. Sebelumnya digunakan oleh Driver Install Frameworks (DIFx). Untuk informasi tentang penghentian DIFx, lihat Panduan DIFx.
Keterangan
Ketika paket driver melewati pengujian Microsoft Windows Hardware Quality Lab (WHQL), WHQL mengembalikan file katalog .cat ke IHV atau OEM. Setiap file .cat berisi tanda tangan terenkripsi secara digital untuk paket driver. IHV atau OEM harus mencantumkan file .cat ini di bagian Versi INF dan harus menyediakan file pada media distribusi, di lokasi yang sama dengan file INF. File .cat harus tidak dikompresi.
Catatan
Jika bagian Versi INF tidak menyertakan setidaknya satu entri CatalogFile atau CatalogFile.ntxxx, driver diperlakukan sebagai tidak ditandatangani, dan tanggal yang tercantum dalam direktif DriverVer tidak ditampilkan oleh Windows.
Untuk informasi selengkapnya, lihat Penandatanganan Driver.
Contoh
Contoh berikut menunjukkan bagian Versi yang khas dari INF paket driver sederhana, diikuti oleh bagian SourceDisksNames dan SourceDisksFiles yang diperlukan yang disiratkan oleh entri yang ditentukan di bagian Versi sampel ini:
[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"
; ...