Bagian INF ClassInstall32
Perhatian
Jika Anda membangun paket Universal atau Windows Driver, bagian ini tidak valid. Lihat Menggunakan File INF Universal dan Mulai mengembangkan driver Windows.
Bagian ClassInstall32 menginstal kelas penyiapan perangkat baru untuk perangkat di kelas baru.
[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]...]
Entri
AddReg=add-registry-section[,add-registry-section]...
Mereferensikan satu atau beberapa bagian bernama yang berisi entri nilai khusus kelas untuk ditulis ke dalam registri. Biasanya, ini digunakan untuk memberikan kelas penyiapan perangkat baru setidaknya nama ramah yang nantinya dapat diambil komponen lain dari registri dan digunakan untuk membuka perangkat yang diinstal dari kelas perangkat baru ini atau untuk "menginstal" penyedia halaman properti apa pun untuk kelas penyiapan perangkat ini, dan sebagainya.
Spesifikasi HKR di bagian add-registry mana pun menunjuk kunci registri yang berisi pengaturan untuk kelas tersebut. Untuk informasi tambahan, lihat bagian Komentar berikut ini.
Untuk informasi selengkapnya, lihat Direktif AddReg INF.
AddProperty=add-property-section[,add-property-section]...
(Windows Vista dan versi Windows yang lebih baru) Mereferensikan satu atau beberapa bagian file INF yang memodifikasi properti perangkat yang diatur untuk kelas penyiapan perangkat. Anda harus menggunakan direktif INF AddProperty hanya untuk mengatur properti kelas penyiapan perangkat yang baru untuk Windows Vista atau versi sistem operasi Windows yang lebih baru.
Untuk properti kelas perangkat yang diperkenalkan sebelumnya pada Windows Server 2003, Windows XP, atau Windows 2000, dan yang memiliki nilai entri registri yang sesuai, Anda harus terus menggunakan arahan INF AddReg untuk mengatur properti kelas penyiapan perangkat. Panduan ini berlaku untuk properti yang ditentukan sistem dan properti kustom.
Untuk informasi selengkapnya tentang cara menggunakan direktif AddProperty , lihat Menggunakan Direktif AddProperty INF dan Direktif INF DelProperty.
Copyfiles=@filename | file-list-section[,file-list-section]...
Menentukan satu file bernama yang akan disalin dari media sumber ke tujuan atau mereferensikan satu atau beberapa bagian bernama di mana file yang relevan dengan kelas pada media sumber ditentukan untuk ditransfer ke tujuan. Entri DefaultDestDir di bagian DestinationDirs dari INF menentukan direktori tujuan untuk file tunggal khusus kelas apa pun yang akan disalin.
Untuk informasi selengkapnya, lihat Direktif INF CopyFiles.
Catatan
File INF yang disediakan sistem untuk kelas penyiapan perangkat tidak menggunakan direktif ini di bagian ini.
DelReg=del-registry-section[,del-registry-section]...
Mereferensikan satu atau beberapa bagian bernama di mana entri nilai atau kunci ditentukan untuk dihapus dari registri selama penginstalan penginstal kelas.
Namun, jika {SetupClassGUID} tertentu sudah ada sebagai kelas yang diinstal, kode penyiapan sistem kemudian mengabaikan bagian ClassInstall32 dari INF apa pun yang menentukan nilai GUID yang sama di bagian Versinya. Akibatnya, INF tidak dapat mengganti penginstal kelas yang ada atau mengubah perilakunya dari bagian ClassInstall32 .
Untuk informasi selengkapnya, lihat Direktif INF DelReg.
DelProperty=del-property-section[,del-property-section]...
(Windows Vista dan versi Windows yang lebih baru) Mereferensikan satu atau beberapa bagian file INF yang menghapus properti perangkat yang diatur untuk kelas penyiapan perangkat. Anda harus menggunakan direktif INF DelProperty hanya untuk menghapus properti kelas penyiapan perangkat yang baru untuk Windows Vista atau versi sistem operasi Windows yang lebih baru.
Untuk properti kelas perangkat yang diperkenalkan sebelumnya pada Windows Server 2003, Windows XP, atau Windows 2000, dan yang memiliki nilai entri registri yang sesuai, Anda harus terus menggunakan arahan INF DelReg untuk menghapus properti kelas penyiapan perangkat. Panduan ini berlaku untuk properti yang ditentukan sistem dan properti kustom.
Untuk informasi selengkapnya tentang cara menggunakan direktif DelProperty , lihat Menggunakan Petunjuk AddProperty INF dan Direktif INF DelProperty.
Delfiles=file-list-section[,file-list-section]...
Mereferensikan satu atau beberapa bagian bernama di mana file relevan kelas yang diinstal sebelumnya pada tujuan ditentukan untuk penghapusan.
Untuk informasi selengkapnya, lihat Direktif INF DelFiles.
Renfiles=file-list-section[,file-list-section]...
Mereferensikan satu atau beberapa bagian bernama tempat file yang relevan dengan kelas diganti namanya di tujuan dicantumkan.
Untuk informasi selengkapnya, lihat Direktif RenFiles INF.
BitReg=bit-registry-section[,bit-registry-section]...
Valid di bagian ini tetapi hampir tidak pernah digunakan.
Untuk informasi selengkapnya, lihat Direktif INF BitReg.
UpdateInis=update-ini-section[,update-ini-section]...
Valid di bagian ini tetapi hampir tidak pernah digunakan.
Untuk informasi selengkapnya, lihat Direktif INF UpdateInis.
UpdateIniFields=update-inifields-section[,update-inifields-section]...
Valid di bagian ini tetapi hampir tidak pernah digunakan.
Untuk informasi selengkapnya, lihat Direktif INF UpdateIniFields.
Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Valid di bagian ini tetapi hampir tidak pernah digunakan.
Untuk informasi selengkapnya, lihat Direktif INF UpdateIniFields.
Keterangan
Anda harus menyertakan bagian ClassInstall32 dalam file INF perangkat hanya untuk menginstal kelas penyiapan perangkat kustom baru. File INF untuk perangkat di kelas yang diinstal, baik kelas penyiapan perangkat yang disediakan sistem atau kelas kustom, tidak boleh menyertakan bagian ClassInstall32. Karena sistem memproses bagian ClassInstall32 hanya jika kelas belum diinstal, Anda tidak dapat menggunakan bagian ClassInstall32 untuk menginstal ulang atau mengubah pengaturan untuk kelas yang sudah diinstal. Secara khusus, Anda tidak dapat menggunakan bagian ClassInstall32 untuk menambahkan penginstal bersama kelas atau driver filter kelas untuk kelas yang sudah diinstal. Untuk informasi tentang cara menginstal penginstal bersama dan driver filter, lihat Menulis Penginstal Bersama dan Menginstal Driver Filter.
Biasanya, bagian ClassInstall32 memiliki satu atau beberapa arahan AddReg untuk menambahkan entri di bawah subkey SetupClassGUID yang disediakan sistem dalam registri. Entri ini dapat mencakup jalur penginstal kelas khusus kelas ," jalur penginstal kelas, ikon kelas, penyedia halaman properti, dan sebagainya.
Kecuali untuk AddReg dan CopyFiles, arahan lain yang ditunjukkan di sini jarang digunakan di bagian ClassInstall32 .
Untuk mendukung distribusi multiplatform file driver, buat bagian ClassInstall32 khusus platform. Misalnya, semua fungsi SetupAPI sistem yang memproses bagian ClassInstall32 akan mencari bagian ClassInstall32.ntx86 terlebih dahulu pada platform x86 dan hanya memeriksa bagian ClassInstall32 yang tidak terdekorasi jika mereka tidak dapat menemukan bagian ClassInstall32.ntx86. 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
Nama bagian ClassInstall32 juga digunakan untuk penginstalan pada platform 64-bit.
Dimulai dengan Windows 2000, setiap perangkat yang diinstal dikaitkan dengan kelas penyiapan perangkat. Jika INF untuk perangkat yang akan diinstal tidak terkait dengan penginstal kelas perangkat baru, atau jika spesifikasi ClassGUID= di bagian Versi tidak cocok dengan GUID kelas penyiapan yang ditentukan sistem, perangkat tersebut dikaitkan dengan kelas penyiapan perangkat dengan nama "Tidak Diketahui".
INF untuk alat penginstal kelas perangkat apa pun biasanya memiliki direktif AddReg di bagian ClassInstall32-nya untuk menentukan setidaknya satu bagian bernama yang membuat nama yang mudah diingat untuk jenis perangkatnya. Kode penyiapan secara otomatis membuat kunci SetupClassGUID di tempat yang sesuai di registri dari nilai yang disediakan untuk entri ClassGUID= di bagian Versi INF ketika perangkat pertama dari kelas penyiapan (baru) tersebut diinstal.
INF dapat menggunakan bagian add-registry yang direferensikan di bagian ClassInstall32-nya untuk menentukan penyedia halaman properti dan untuk memberikan kontrol atas bagaimana kelas perangkatnya ditangani di antarmuka pengguna.
Bagian add-registry khusus kelas seperti itu memiliki bentuk umum berikut:
[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]
Sistem menggunakan ikon yang ditentukan untuk mewakili alat penginstal Anda kepada pengguna.
- Jika nilai Ikon positif, nilai tersebut mewakili pengidentifikasi sumber daya untuk sumber daya. Sumber daya diekstrak dari DLL penginstal kelas, jika kunci Installer32 ditentukan, atau dari halaman properti DLL, jika kunci EnumPropPages32 ditentukan. Nilai "0" mewakili ikon pertama di DLL. Nilai "1" dicadangkan.
- Jika nilai Ikon negatif, nilai absolut adalah pengidentifikasi sumber daya ikon di SetupApi.DLL.
Mengatur entri nilai SilentInstall, NoDisplayClass, dan NoInstallClass Boolean yang telah ditentukan sebelumnya dalam kunci registri khusus kelas memiliki efek berikut:
Mengatur SilentInstall mengarahkan penginstal untuk tidak mengirim pesan popup kepada pengguna yang memerlukan respons saat menginstal perangkat kelas ini, baik yang ditentukan di bagian DDInstall dari file INF penginstal kelas atau dalam file INF terpisah untuk perangkat yang kemudian diinstal yang mendeklarasikan diri dari kelas ini dengan mengatur spesifikasi ClassGuid={ClassGUID} yang sama di bagian Versi masing-masing. Misalnya, penginstal kelas sistem perangkat CD-ROM dan disk dan penginstal kelas port paralel sistem mengatur SilentInstall di kunci registri masing-masing.
Jika penginstal khusus kelas mengharuskan komputer dimulai ulang untuk perangkat apa pun yang diinstalnya, bagian add-registry khusus kelas di INF-nya tidak dapat memiliki entri nilai ini.
Pengaturan NoDisplayClass menekan tampilan yang terlihat pengguna dari semua perangkat kelas ini oleh Manajer Perangkat. Misalnya, penginstal kelas sistem untuk printer dan untuk driver jaringan (termasuk klien, layanan, dan protokol) mengatur NoDisplayClass di kunci registri masing-masing.
Pengaturan NoInstallClass menunjukkan bahwa tidak ada perangkat jenis ini yang akan memerlukan penginstalan manual oleh pengguna akhir. Misalnya, alat penginstal kelas sistem untuk perangkat Plug and Play (PnP) secara eksklusif mengatur NoInstallClass di kunci registri masing-masing.
Bagian ClassInstall32 dapat berisi arahan AddReg untuk mengatur DeviceType, DeviceCharacteristics, dan Security untuk perangkat kelas penyiapannya. Lihat Direktif AddReg INF untuk informasi selengkapnya.
Contoh
Contoh ini menunjukkan bagian ClassInstall32 , bersama dengan bagian bernama yang direferensikannya dengan direktif AddReg.
[ClassInstall32]
AddReg=example_class_addreg
[example_class_addreg]
HKR,,,,%ClassName%
HKR,,Icon,,"-1"
Sebaliknya, contoh ini menyiapkan penyedia halaman properti khusus kelas. INF ini juga mengatur entri nilai SilentInstall dan NoInstallClass di kunci kelas ke TRUE (1).
[example_class_addreg]
HKR,,,,%ClassName%
HKR,,EnumPropPages32,,"ExampleBinary.Dll,ExamplePropPageProvider"
HKR,,SilentInstall,,1
HKR,,NoInstallClass,,1
HKR,,Icon,,"101"