Раздел 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]...
Ссылается на один или несколько разделов add-registry-section, определяемых inf-writer, которые хранят сведения реестра о предоставленных совместно установщиках.

HKR, указанный в таком разделе реестра надстроек, указывает путь к реестру "программного раздела" устанавливаемого устройства. Таким образом, для совместного установщика для конкретного устройства он записывает (или изменяет) запись значения CoInstallers32 в этот доступный пользователю программный ключ для каждого устройства или драйвера.

Для совместного установщика класса он регистрирует новые совместные установщики, изменяя содержимое соответствующего .. Подразделы CoDeviceInstallers\SetupClassGUID . Путь к соответствующим подразделам SetupClassGUID реестра должен быть явно указан в указанных разделах реестра надстроек.

Дополнительные сведения см. в разделе Inf AddReg Directive.

CopyFiles=@filename | file-list-section*[,file-list-section]...
Передает исходные файлы совместного установщика в место назначения на целевом компьютере, как правило, путем ссылки на один или несколько определяемых inf-writer файлов list-section в другом месте INF-файла. В этом разделе списка файлов указываются файлы совместного установщика, которые будут скопированы с исходного носителя в целевой каталог назначения.

Однако системные INF-файлы, устанавливающие совместные установщики, никогда не используют эту директиву в DDInstall. Раздел CoInstallers .

Дополнительные сведения см. в разделе Директива INF CopyFiles.

Include=имя_файла. 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, указанный в таком разделе delete-registry, обозначает тот же подраздел реестра, что и для записи AddReg. Эта директива редко используется в DDInstall. Раздел CoInstallers .

Дополнительные сведения см. в разделе Директива INF DelReg.

BitReg=bit-registry-section[,bit-registry-section]...
Эта запись действительна в этом разделе, но почти не используется. HKR, указанный в таком битовом разделе реестра, обозначает тот же подраздел реестра, что и для записи AddReg.

Дополнительные сведения см. в разделе Директива BitReg INF.

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. Раздел Coinstallers должен быть по одному для каждого раздела 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-файла с помощью dirid11 или путем указания этого значения dirid для записи DefaultDestDir .

Регистрация совместного установщика Device-Specific

Для регистрации одного или нескольких совместного установщика для конкретного устройства требуется добавить в реестр запись REG_MULTI_SZ типизированного значения. Укажите раздел add-registry, на который ссылается директива AddReg , используя следующую общую форму:

[DDInstall.CoInstallers_DeviceAddReg]
 
HKR,,CoInstallers32,0x00010000,"DevSpecificCoInstall.dll
   [,DevSpecificEntryPoint]"[,"DevSpecific2CoInstall.dll
      [,DevSpecific2EntryPoint]"...] 

Запись HKR указана в виде одной строки в INF-файле, и каждая предоставленная библиотека совместного установщика для конкретного устройства должна иметь уникальное имя. После регистрации перечисленных соустановок установщики системного устройства вызывают их на каждом последующем этапе процесса установки для этого устройства.

Если необязательный параметр DevSpecificEntryPoint опущен, в качестве точки входа библиотеки DLL совместного установщика используется имя подпрограммы CoDeviceInstall по умолчанию.

Дополнительные сведения см. в разделе Регистрация совместного установщика Device-Specific.

Регистрация совместного установщика Device-Class

Чтобы добавить запись значения (и подраздел класса установки, если он еще не существует) для одного или нескольких установщиков класса устройства в реестр, раздел надстройки реестра , на который ссылается директива AddReg , имеет следующую общую форму:

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

Каждая запись в таком разделе add-registry указана в виде одной строки в INF-файле, и каждая предоставленная библиотека DLL-установщика класса должна иметь уникальное имя. Если предоставленные установщики должны использоваться для нескольких классов установки устройств, этот раздел реестра надстроек может содержать несколько записей, каждая из которых имеет соответствующее значение SetupClassGUID .

Такой дополнительный совместный установщик класса устройства не должен заменять уже зарегистрированные совместные установщики для существующего установщика класса. Таким образом, совместному установщику класса должно быть присвоено уникальное имя, а указанное значение типа REG_MULTI_SZ должно быть добавлено (как указано в значении 8 в значении флагов0x0010008) к записям совместного установщика для конкретного класса, если таковые имеются, уже присутствуют в подразделе {SetupClassGUID}.

Примечание

Функции SetupAPI никогда не добавляют повторяющийся .dllDevClssCoInstall в запись значения, если совместный установщик с тем же именем уже зарегистрирован.

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 в разделе Version для передачи файла совместного установщика в место назначения.

Любой DDInstall. Для раздела CoInstallers в inf, предоставленном IHV или OEM, требуется директива CopyFiles , а также разделы SourceDisksNames и SourceDisksFiles .

См. также раздел

AddReg

BitReg

CopyFiles

Установка DDInstall

DelFiles

DelReg

DestinationDirs

Ini2Reg

RenFiles

SourceDisksFiles

SourceDisksNames

UpdateIniFields

Версия