Поделиться через


Регистрация совместного установщика 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.CoInstallersDDInstall. Раздел 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 вызывает их в том порядке, в котором они перечислены в реестре.