Bagian INF DDInstall.CoInstallers
Perhatian
Mulai Windows 11 versi 22H2, paket driver yang menggunakan bagian ini tidak lagi memenuhi syarat untuk tanda tangan dari Pusat Pengembang Perangkat Keras.
Paket pengandar universal dan Driver Windows tidak dapat menggunakan bagian ini.
Bagian opsional ini mendaftarkan satu atau beberapa penginstal khusus perangkat yang disediakan pada media distribusi untuk melengkapi operasi penginstal kelas perangkat yang ada.
[install-section-name.CoInstallers] |
[install-section-name.nt.CoInstallers] |
[install-section-name.ntx86.CoInstallers] |
[install-section-name.ntia64.CoInstallers] | (Windows XP and later versions of Windows)
[install-section-name.ntamd64.CoInstallers] | (Windows XP and later versions of Windows)
[install-section-name.ntarm.CoInstallers] | (Windows 8 and later versions of Windows)
[install-section-name.ntarm64.CoInstallers] (Windows 10 version 1709 and later versions of Windows)
AddReg=add-registry-section[,add-registry-section]...
CopyFiles=@filename | file-list-section[,file-list-section]...
[Include=filename.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
[DelFiles=file-list-section[,file-list-section]...]
[RenFiles=file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-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 bagianadd-registry yang ditentukan penulis INF yang menyimpan informasi registri tentang penginstal bersama yang disediakan.
HKR yang ditentukan di bagian add-registry tersebut menunjuk jalur registri "kunci perangkat lunak" perangkat yang sedang diinstal. Oleh karena itu, untuk penginstal bersama khusus perangkat, ia menulis (atau memodifikasi) entri nilai CoInstallers32 dalam kunci "perangkat lunak" per perangkat/driver yang dapat diakses pengguna ini.
Untuk penginstal bersama khusus kelas, ia mendaftarkan penginstal bersama baru dengan memodifikasi konten . . CoDeviceInstallers\SetupClassGUID subkeys. Jalur subkey SetupClassGUID registri yang sesuai harus ditentukan secara eksplisit di bagian add-registry yang direferensikan.
Untuk informasi selengkapnya, lihat Direktif AddReg INF.
CopyFiles=@filename | file-list-section*[,file-list-section]...
Mentransfer file penginstal bersama sumber ke tujuan pada komputer target, biasanya dengan merujuk satu atau beberapa bagiandaftar file yang ditentukan penulis INF di tempat lain dalam file INF. Bagian daftar file seperti itu menentukan file penginstal bersama yang akan disalin dari media sumber ke direktori tujuan pada target.
Namun, file INF sistem yang menginstal penginstal bersama tidak pernah menggunakan direktif ini dalam DDInstall. Bagian CoInstallers .
Untuk informasi selengkapnya, lihat Direktif INF CopyFiles.
Include=filename.inf[,filename2.inf]...
Menentukan satu atau beberapa file INF yang disediakan sistem yang berisi bagian yang diperlukan untuk menginstal penginstal bersama untuk perangkat ini atau kelas penyiapan perangkat. File INF dengan entri ini biasanya harus menentukan Kebutuhan.
Needs=inf-section-name[,inf-section-name]...
Menentukan bagian tertentu yang harus diproses selama penginstalan perangkat ini. Biasanya, bagian bernama seperti itu adalah DDInstall. Bagian CoInstallers dalam file INF yang disediakan sistem yang tercantum dalam entri Sertakan . Namun, itu bisa menjadi bagian apa pun yang dirujuk dalam DDInstall seperti itu. Bagian CoInstallers dari INF yang disertakan.
DelFiles=file-list-section[,file-list-section]...
Mereferensikan bagian daftar file yang menentukan file yang akan dihapus dari target. Direktif ini jarang digunakan.
Untuk informasi selengkapnya, lihat Direktif INF DelFiles.
RenFiles=file-list-section[,file-list-section]...
Mereferensikan bagian daftar file yang menentukan file pada tujuan yang akan diganti namanya sebelum file sumber penginstal bersama disalin ke target. Arahan ini juga jarang digunakan.
Untuk informasi selengkapnya, lihat Direktif RenFiles INF.
DelReg=del-registry-section[,del-registry-section]...
Mereferensikan satu atau beberapa inf-writer-define delete-registry-sections. Bagian seperti itu menentukan informasi registri kedaluarsa tentang rekan penginstal untuk penginstalan sebelumnya dari perangkat yang sama yang harus dihapus dari registri. HKR yang ditentukan di bagian delete-registry tersebut menunjuk subkunjuk registri yang sama seperti yang sudah dijelaskan untuk entri AddReg. Direktif ini jarang digunakan dalam DDInstall. Bagian CoInstallers .
Untuk informasi selengkapnya, lihat Direktif INF DelReg.
BitReg=bit-registry-section[,bit-registry-section]...
Entri ini valid di bagian ini tetapi hampir tidak pernah digunakan. HKR yang ditentukan dalam bagian bit-registri seperti itu menunjuk subkunjuk registri yang sama seperti yang sudah dijelaskan untuk entri AddReg.
Untuk informasi selengkapnya, lihat Direktif INF BitReg.
UpdateInis=update-ini-section[,update-ini-section]...
Entri ini valid di bagian ini tetapi hampir tidak pernah digunakan.
Untuk informasi selengkapnya, lihat Direktif INF UpdateInis.
UpdateIniFields=update-inifields-section[,update-inifields-section]...
Entri ini 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]...
Entri ini valid di bagian ini tetapi hampir tidak pernah digunakan.
Untuk informasi selengkapnya, lihat Direktif INF Ini2Reg.
Keterangan
Bagian DDInstall yang ditentukan harus dirujuk dalam entri khusus perangkat/model di bawah bagian Model per produsen dari file INF.
Jika INF menyertakan DDInstall. Bagian coinstallers, harus ada satu untuk setiap bagian DDInstall yang didekodekan dan tidak terdekode platform. Misalnya, jika INF berisi bagian [install-section-name.ntx86] dan bagian [install-section-name] dan mendaftarkan penginstal bersama khusus perangkat, maka INF harus menyertakan [install-section-name.ntx86. Bagian coinstallers] dan [install-section-name. Coinstallers] bagian. 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.
Setiap direktif dalam DDInstall.Bagian CoInstallers dapat mereferensikan lebih dari satu nama bagian yang ditentukan penulis INF. Namun, setiap bagian bernama tambahan harus dipisahkan dari bagian berikutnya dengan koma (,).
Setiap nama bagian yang dibuat direktif harus unik dalam file INF dan harus mengikuti aturan umum untuk menentukan nama bagian. Untuk informasi selengkapnya tentang aturan ini, lihat Aturan Sintaks Umum untuk File INF.
Penginstal bersama adalah DLL Win32 yang biasanya menulis informasi konfigurasi tambahan ke registri atau melakukan tugas penginstalan lain yang memerlukan informasi khusus sistem yang dihasilkan secara dinamis yang tidak tersedia saat INF dibuat. Penginstal bersama khusus perangkat melengkapi operasi penginstalan salah satu alat penginstal perangkat OS atau alat penginstal kelas yang sesuai saat perangkat tersebut diinstal.
Untuk informasi selengkapnya tentang cara menulis dan menggunakan penginstal bersama, lihat Menulis Penginstal Bersama.
Menginstal Gambar Penginstal Bersama
Semua file penginstal bersama harus disalin ke direktori %SystemRoot%\system32 . Seperti operasi INF CopyFiles apa pun, tujuan dikontrol secara eksplisit untuk bagian daftar file bernama di bagian DestinationDirs dari file INF dengan nilai yang diisi 11 atau dengan menyediakan nilai dirid ini untuk entri DefaultDestDir.
Mendaftarkan Penginstal Bersama Khusus Perangkat
Mendaftarkan satu atau beberapa penginstal bersama khusus perangkat memerlukan penambahan entri nilai yang REG_MULTI_SZ-ketik ke registri. Tentukan bagian add-registry yang direferensikan oleh direktif AddReg, dengan menggunakan formulir umum berikut:
[DDInstall.CoInstallers_DeviceAddReg]
HKR,,CoInstallers32,0x00010000,"DevSpecificCoInstall.dll
[,DevSpecificEntryPoint]"[,"DevSpecific2CoInstall.dll
[,DevSpecific2EntryPoint]"...]
Entri HKR terdaftar sebagai satu baris dalam file INF, dan setiap DLL penginstal bersama khusus perangkat yang disediakan harus memiliki nama yang unik. Setelah rekan penginstal terdaftar, alat penginstal perangkat sistem memanggilnya di setiap langkah berikutnya dari proses penginstalan untuk perangkat tersebut.
Jika DevSpecificEntryPoint opsional dihilangkan, nama rutin CoDeviceInstall default digunakan sebagai titik masuk DLL penginstal bersama.
Untuk informasi selengkapnya, lihat Mendaftarkan Penginstal Bersama Khusus Perangkat.
Mendaftarkan Penginstal Bersama Kelas Perangkat
Untuk menambahkan entri nilai (dan subkuntang kelas penyiapan, jika belum ada) untuk satu atau beberapa penginstal bersama kelas perangkat ke registri, bagian add-registry yang direferensikan oleh direktif AddReg memiliki bentuk umum berikut:
[DDInstall.CoInstallers_ClassAddReg]
HKLM,System\CurrentControlSet\Control
\CoDeviceInstallers,{SetupClassGUID},
0x00010008,"DevClssCoInst.dll[,DevClssEntryPoint]"
...
Setiap entri di bagian add-registry tersebut tercantum sebagai satu baris dalam file INF, dan setiap DLL penginstal bersama kelas yang disediakan harus memiliki nama yang unik. Jika penginstal bersama yang disediakan harus digunakan untuk lebih dari satu kelas penyiapan perangkat, bagian add-registry ini dapat memiliki lebih dari satu entri, masing-masing dengan nilai SetupClassGUID yang sesuai.
Penginstal bersama kelas perangkat tambahan seperti itu tidak boleh menggantikan penginstal bersama yang sudah terdaftar untuk penginstal kelas yang ada. Oleh karena itu, penginstal bersama kelas harus memiliki nama unik dan nilai jenis REG_MULTI_SZ yang disediakan harus ditambahkan (seperti yang ditunjukkan oleh 8 dalam nilai bendera 0x0010008) ke entri penginstal bersama khusus kelas, jika ada, sudah ada di subkunci {SetupClassGUID}.
Catatan
Fungsi SetupAPI tidak pernah menambahkan DevClssCoInstall duplikat.dll ke entri nilai jika penginstal bersama dengan nama yang sama sudah terdaftar.
INF untuk penginstal bersama kelas perangkat tambahan dapat diaktifkan dengan penginstalan klik kanan atau melalui panggilan ke SetupInstallFromInfSection yang dibuat oleh aplikasi penginstalan perangkat.
Contoh
Contoh ini menunjukkan DDInstall.Bagian CoInstallers untuk adaptor jaringan serial IrDA. INF yang disediakan sistem untuk NIC IrDA (serial) ini memasok penginstal bersama ke penginstal kelas IrDA sistem.
; DDInstall section
[PNP.NT]
AddReg=ISIR.reg, Generic.reg, Serial.reg
PromptForPort=0 ; This is handled by IRCLASS.DLL
LowerFilters=SERIAL ; This is handled by IRCLASS.DLL
BusType=14
Characteristics=0x4 ; NCF_PHYSICAL
; ... PNP.NT.Services section omitted here
[PNP.NT.CoInstallers]
AddReg = ISIR.CoInstallers.reg
; ...
[IRSIR.reg]
HKR, Ndi, HelpText, 0, %IRSIR.Help%
HKR, Ndi, Service, 0, "IRSIR"
HKR, Ndi\Interfaces, DefUpper, 0, "ndisirda"
HKR, Ndi\Interfaces, DefLower, 0, "nolower"
HKR, Ndi\Interfaces, UpperRange, 0, "ndisirda"
HKR, Ndi\Interfaces, LowerRange, 0, "nolower"
[Generic.reg]
HKR,,InfraredTransceiverType,0,"0"
[Serial.reg]
HKR,,SerialBased,0, "0"
[ISIR.CoInstallers.reg]
HKR,,CoInstallers32,0x00010000,"IRCLASS.dll,IrSIRClassCoInstaller"
; ... Services and Event Log registry sections omitted here
[Strings]
; ...
IRSIR.Help = "An IrDA serial infrared device is a built-in COM port or
external transceiver which transmits infrared pulses. This NDIS
miniport driver installs as a network adapter and binds to the FastIR
protocol."
PNP sebelumnya.NT. Bagian CoInstallers hanya mereferensikan bagian add-registry khusus penginstal bersama.
Ini tidak memiliki direktif CopyFiles karena INF yang disediakan sistem ini menginstal satu set perangkat jaringan IrDA. Seperti semua file INF sistem, file INF ini menggunakan entri LayoutFile di bagian Versinya untuk mentransfer file penginstal bersama ke tujuan.
Setiap DDInstall. Bagian CoInstallers dalam INF yang disediakan oleh IHV atau OEM memerlukan direktif CopyFiles dan juga bagian SourceDisksNames dan SourceDisksFiles.