Раздел INF DDInstall.CoInstallers
Внимание
Начиная с Windows 11 версии 22H2, пакет драйвера, использующий этот раздел, больше не подходит для подписи из Центра разработчиков оборудования.
Пакеты универсальных драйверов и драйверы Windows не могут использовать этот раздел.
Этот необязательный раздел регистрирует один или несколько установщиков, относящихся к устройству, предоставляемых на носителе распространения, чтобы дополнить операции существующих установщиков классов устройств.
[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]...]
...
Операции
AddReg=add-registry-section[,add-registry-section]...
Ссылается на один или несколько разделовнадстройки, определенных в inf-writer, которые хранят сведения о предоставленных со установщиках реестра.
HKR, указанный в таком разделе реестра надстроек, указывает путь к реестру "раздел программного обеспечения" установленного устройства. Таким образом, для совместного установщика для конкретного устройства он записывает (или изменяет) запись значения CoInstallers32 в этом пользовательском ключе для каждого устройства или драйвера "программное обеспечение".
Для совместного установщика для определенного класса он регистрирует новые установщики, изменив содержимое соответствующего .. Вложенные ключи CoDeviceInstallers\SetupClassGUID . Путь к соответствующим подразделам реестра SetupClassGUID должен быть явно указан в разделах реестра, на которые ссылается ссылка.
Дополнительные сведения см. в директиве INF AddReg.
CopyFiles=@filename | file-list-section*[,file-list-section]...
Передает исходные файлы совместного установщика в место назначения на целевом компьютере, как правило, ссылаясь на один или несколько файлов, определенных в файле INF-записи. Такой раздел списка файлов указывает файлы совместного установщика, скопированные из исходного носителя в целевой каталог.
Однако системные INF-файлы, устанавливающие совместно установщики, никогда не используют эту директиву в DDInstall. Раздел CoInstallers .
Дополнительные сведения см. в директиве INF CopyFiles.
Include=filename.inf[,filename2.inf]...
Указывает один или несколько системных INF-файлов, содержащих разделы, необходимые для установки совместно используемых установщиков для этого класса установки устройства или устройства. INF-файл с этой записью обычно должен указывать потребности.
Needs=inf-section-name[,inf-section-name]...
Указывает конкретные разделы, которые должны обрабатываться во время установки этого устройства. Как правило, такой именованный раздел является DDInstall. Раздел CoInstallers в предоставленном системой INF-файле, который указан в записи Include . Однако это может быть любой раздел, на который ссылается такой DDInstall. Раздел CoInstallers включенного INF.
DelFiles=file-list-section[,file-list-section]...
Ссылается на раздел списка файлов, указывающий файлы, которые нужно удалить из целевого объекта. Эта директива редко используется.
Дополнительные сведения см. в директиве INF DelFiles.
RenFiles=file-list-section[,file-list-section]...
Ссылается на раздел списка файлов, указывающий файлы в назначении, которые необходимо переименовать перед копированием исходных файлов со установщика в целевой объект. Эта директива также редко используется.
Дополнительные сведения см. в директиве INF RenFiles.
DelReg=del-registry-section[,del-registry-section]...
Ссылается на один или несколько разделов INF-writer-define delete-registry-section. В этом разделе указываются устаревшие сведения о установщиках для предыдущей установки того же устройства, которые должны быть удалены из реестра. HKR, указанный в таком разделе удаления реестра, указывает тот же подраздел реестра, что и для записи AddReg. Эта директива редко используется в DDInstall. Раздел CoInstallers .
Дополнительные сведения см. в директиве INF DelReg.
BitReg=bit-registry-section[,bit-registry-section]...
Эта запись допустима в этом разделе, но почти никогда не использовалась. HKR, указанный в таком разделе битового реестра, указывает тот же подраздел реестра, что и для записи AddReg.
Дополнительные сведения см. в директиве INF BitReg.
UpdateInis=update-ini-section[,update-ini-section]...
Эта запись допустима в этом разделе, но почти никогда не использовалась.
Дополнительные сведения см. в директиве INF UpdateInis.
UpdateIniFields=update-inifields-section[,update-inifields-section]...
Эта запись допустима в этом разделе, но почти никогда не использовалась.
Дополнительные сведения см. в директиве INF UpdateIniFields.
Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Эта запись допустима в этом разделе, но почти никогда не использовалась.
Дополнительные сведения см. в директиве INF Ini2Reg.
Замечания
Указанный раздел DDInstall должен ссылаться на запись устройства или модели в разделе "Модели производителя" в INF-файле.
Если INF включает DDInstall. Раздел "Монетталлеры" , должен быть один для каждого раздела, украшенного платформой и неоцененного DDInstall . Например, если INF-файл содержит раздел [install-section-name.ntx86] и раздел [install-section-name], а также регистрирует установщики для конкретного устройства, то INF-файл должен включать как [install-section-name.ntx86. Раздел Coinstallers] и [install-section-name. Раздел Coinstallers] Дополнительные сведения об использовании системных расширений .nt, NTX86, .ntia64, .ntamd64, NTARM и NTARM64 см. в разделе "Создание INF-файлов для нескольких платформ и операционных систем".
Каждая директива в DDInstall.Раздел CoInstallers может ссылаться на несколько имен разделов , определенных inf-writer. Однако каждый дополнительный именованный раздел должен быть отделен от следующего с запятой (,).
Каждое созданное директивой имя раздела должно быть уникальным в INF-файле и должно соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в разделе Общие правила синтаксиса для INF-файлов.
Совместное установщик — это библиотека DLL Win32, которая обычно записывает дополнительные сведения о конфигурации в реестр или выполняет другие задачи установки, требующие динамического создания, сведения, связанные с системой, которые недоступны при создании INF. Совместное установщик для конкретного устройства дополняет операции установки либо установщика устройств ОС, либо соответствующего установщика класса при установке этого устройства.
Дополнительные сведения о написании и использовании совместного установщика см. в статье "Написание совместного установщика".
Установка образов совместного установщика
Все файлы со установщика должны быть скопированы в каталог %SystemRoot%\system32 . Как и любая операция INF CopyFiles, назначение управляется явным образом для именованного раздела file-list-section в разделе DestinationDirs INF-файла с помощью значения 11 или путем указания этого значения для записи DefaultDestDir.
Регистрация совместного установщика для конкретного устройства
Регистрация одного или нескольких со установщиков для конкретного устройства требует добавления в реестр записи с REG_MULTI_SZ типизированным значением. Укажите раздел надстройки, на который ссылается директива AddReg, с помощью следующей общей формы:
[DDInstall.CoInstallers_DeviceAddReg]
HKR,,CoInstallers32,0x00010000,"DevSpecificCoInstall.dll
[,DevSpecificEntryPoint]"[,"DevSpecific2CoInstall.dll
[,DevSpecific2EntryPoint]"...]
Запись HKR указана в виде одной строки в INF-файле, и у каждой предоставленной библиотеки DLL для конкретного устройства должно быть уникальное имя. После регистрации перечисленных совместно установщиков установщики системы вызывает их на каждом последующем этапе процесса установки для этого устройства.
Если необязательный атрибут DevSpecificEntryPoint опущен, имя подпрограммы CoDeviceInstall по умолчанию используется в качестве точки входа библиотеки DLL со установщика.
Дополнительные сведения см. в разделе "Регистрация совместного установщика для конкретного устройства".
Регистрация совместного установщика класса устройств
Чтобы добавить запись значения (и подраздел класса установки, если он еще не существует) для одного или нескольких установщиков класса устройств в реестр, раздел надстройки, на который ссылается директива AddReg, имеет следующую общую форму:
[DDInstall.CoInstallers_ClassAddReg]
HKLM,System\CurrentControlSet\Control
\CoDeviceInstallers,{SetupClassGUID},
0x00010008,"DevClssCoInst.dll[,DevClssEntryPoint]"
...
Каждая запись в таком разделе реестра надстроек указана в виде одной строки в INF-файле, а каждая указанная библиотека DLL класса должна иметь уникальное имя. Если указанные совместно установщики должны использоваться для нескольких классов установки устройств, этот раздел надстройки может содержать несколько записей, каждый из которых имеет соответствующее значение SetupClassGUID .
Такой дополнительный установщик класса устройств не должен заменять уже зарегистрированные совместно установщики для существующего установщика классов. Таким образом, для совместного установщика класса должно быть уникальное имя, а значение типа REG_MULTI_SZ должно быть добавлено (как указано в значении 8 в значении флагов 0x0010008) к записям совместного установщика, если таковые имеются, если таковые уже присутствуют в подразделе {SetupClassGUID}.
Примечание.
Функции SetupAPI никогда не добавляют дубликат DevClsCoInstall.dll к записи значений, если совместное установщик того же имени уже зарегистрировано.
INF-файл для дополнительного совместного установщика класса устройства можно активировать с помощью правой кнопки мыши или вызова программы установки SetupInstallFromInfSection, созданной приложением установки устройства.
Примеры
В этом примере показан DDInstall.Раздел CoInstallers для последовательных сетевых адаптеров IrDA. Предоставленные системой INF для этих сетевых адаптеров IrDA (последовательные) предоставляют совместному установщику системного установщика класса IrDA.
; 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.NT. Раздел CoInstallers ссылается только на раздел совместного установщика надстроек .
Она не имеет директивы CopyFiles , так как эта системная inf устанавливает набор сетевых устройств IrDA. Как и все системные INF-файлы, этот INF-файл использует запись LayoutFile в разделе "Версия" для передачи файла совместного установщика в место назначения.
Любой DDInstall. Раздел CoInstallers в INF, предоставленном IHV или OEM, требует директивы CopyFiles, а также разделов SourceDisksNames и SourceDisksFiles.