Регистрация совместного установщика Device-Specific
Примечание
Функции, описанные в этом разделе, не поддерживаются в универсальных или мобильных пакетах драйверов. См . раздел Использование универсального INF-файла.
Чтобы зарегистрировать совместный установщик для конкретного устройства, добавьте следующие разделы в INF-файл устройства:
; :
; :
[DestinationDirs]
XxxCopyFilesSection = 11 \\DIRID_SYSTEM
\\ Xxx = driver or dev. prefix
; :
; :
[XxxInstall.OS-platform.CoInstallers] \\ OS-platform is optional
CopyFiles = XxxCopyFilesSection
AddReg = Xxx.OS-platform.CoInstallers_AddReg
[XxxCopyFilesSection]
XxxCoInstall.dll
[Xxx.OS-platform.CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"XxxCoInstall.dll, \
XxxCoInstallEntryPoint"
Запись в разделе DestinationDirs указывает, что файлы, перечисленные в xxxCopyFilesSection, будут скопированы в системный каталог.
Префикс XXX должен быть уникальным идентификатором драйвера, устройства или группы устройств (например, cdrom_CopyFilesSection
).
Следующий раздел в приведенном выше примере XxxInstall.OS-platform.CoInstallers
— DDInstall. Раздел CoInstallers .
Имя этого раздела может иметь необязательное расширение ОС или архитектуры (например, cdrom_install.NTx86.CoInstallers
).
Он содержит директиву CopyFiles , указывающую раздел file-list-section с именем XxxCopyFilesSection
, и директиву AddReg , которая задает раздел реестра надстроек с именем Xxx.OS-platform.CoInstallers_AddReg
.
Запись в разделе надстройки реестра создает запись значения CoInstallers32 в разделе драйвера устройства. Запись содержит библиотеку DLL совместного установщика и, при необходимости, определенную точку входа. Если опустить точку входа, значение по умолчанию — CoDeviceInstall. Шестнадцатеричный параметр флагов (0x00010000) указывает, что это запись REG_MULTI_SZ значения.
Чтобы зарегистрировать несколько совместного установщика для устройства, скопируйте файлы для каждого совместного установщика и включите в запись реестра несколько строк. Например, чтобы зарегистрировать два совместного установщика, создайте разделы INF, как показано ниже:
; :
; :
[DestinationDirs]
XxxCopyFilesSection = 11 \\DIRID_SYSTEM
\\ Xxx = driver or dev. prefix
; :
; :
[XxxInstall.OS-platform.CoInstallers] \\ OS-platform is optional
CopyFiles = XxxCopyFilesSection
AddReg = Xxx.OS-platform.CoInstallers_AddReg
[XxxCopyFilesSection]
XxxCoInstall.dll \\ copy 1st coinst. file
YyyCoInstall.dll \\ copy 2nd coinst. file
[Xxx.OS-platform.CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000, \
"XxxCoInstall.dll, XxxCoInstallEntryPoint", \
"YyyCoInstall.dll, YyyCoInstallEntryPoint"
\\ add both to registry
Совместные установщики для конкретных устройств регистрируются в процессе установки устройства при обработке раздела Coinstallers INF. Затем SetupAPI вызывает со-установщики на каждом последующем этапе процесса установки. Если для устройства зарегистрировано более одного совместного установщика, SetupAPI вызывает их в том порядке, в котором они перечислены в реестре.