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 tak bisa menggunakan bagian ini.

Bagian opsional ini mendaftarkan satu atau beberapa penginstal khusus perangkat yang disediakan di 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 bagian add-registryyang ditentukan inf-writer 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 di komputer target, biasanya dengan mereferensikan satu atau beberapa file-list-sectionyang ditentukan inf-writer 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 COPYFiles INF.

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. Arahan 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 Inf RenFiles.

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 penginstal bersama untuk penginstalan sebelumnya dari perangkat yang sama yang harus dihapus dari registri. HKR yang ditentukan di bagian delete-registry tersebut menunjuk subkey registri yang sama seperti yang sudah dijelaskan untuk entri AddReg. Arahan 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 di bagian bit-registri tersebut menunjuk subkunjuk registri yang sama seperti yang sudah dijelaskan untuk entri AddReg.

Untuk informasi selengkapnya, lihat Inf BitReg Directive.

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 Inf UpdateIniFields Directive.

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 didekodekan 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. Bagian coinstallers] . 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 arahan dalam DDInstall. Bagian CoInstallers dapat mereferensikan lebih dari satu nama bagian yang ditentukan inf-writer. 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 file-list-section bernama di bagian DestinationDirs dari file INF dengan nilai dirid 11 atau dengan memasok nilai dirid ini untuk entri DefaultDestDir.

Mendaftarkan Device-Specific Co-installer

Mendaftarkan satu atau beberapa penginstal 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 penginstal bersama yang terdaftar 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 Device-Specific Co-installer.

Mendaftarkan Device-Class Co-installer

Untuk menambahkan entri nilai (dan subkey kelas penyiapan, jika belum ada) untuk satu atau beberapa penginstal kelas perangkat ke registri, bagian add-registry yang direferensikan oleh direktif AddReg memiliki formulir umum berikut:

[DDInstall.CoInstallers_ClassAddReg]
 
HKLM,System\CurrentControlSet\Control
    \CoDeviceInstallers,{SetupClassGUID},
       0x00010008,"DevClssCoInst.dll[,DevClssEntryPoint]" 
 ...

Setiap entri di bagian add-registry tersebut terdaftar 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 tersebut 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 bendera0x0010008) ke entri penginstal bersama khusus kelas, jika ada, yang 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-registri 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 Versi 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.

Lihat juga

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelReg

DestinationDirs

Ini2Reg

RenFiles

SourceDisksFiles

SourceDisksNames

UpdateIniFields

Versi