Регистрация совместного установщика классов
Примечание
Функции, описанные в этом разделе, не поддерживаются в универсальных или мобильных пакетах драйверов. См . раздел Использование универсального INF-файла.
Чтобы зарегистрировать совместный установщик для каждого устройства определенного класса установки, создайте запись реестра, как показано ниже, в подразделе HKLM\System\CurrentControlSet\Control\CoDeviceInstallers :
{setup-class-GUID}: REG_MULTI_SZ : "XyzCoInstall.dll,XyzCoInstallEntryPoint\0\0"
Система создает ключ CoDeviceInstallers . Setup-class-GUID указывает GUID для класса установки устройства. Если совместный установщик применяется к нескольким классам устройств, создайте отдельную запись значения для каждого класса установки.
Не следует перезаписывать другие совместные установщики, которые ранее были записаны в ключ guid setup-class-GUID . Прочтите раздел, добавьте строку совместного установщика в список REG_MULTI_SZ и запишите раздел обратно в реестр.
Если опустить CoInstallEntryPoint, по умолчанию используется значение CoDeviceInstall.
Библиотека DLL совместного установщика также должна быть скопирована в системный каталог.
Совместный установщик класса доступен для вызова для соответствующих устройств и служб после копирования файла и внесения записи реестра.
Вместо того чтобы вручную создавать запись реестра для регистрации совместного установщика класса, ее можно зарегистрировать с помощью INF-файла, как показано в следующем примере:
[DestinationDirs]
DefaultDestDir = 11 // DIRID_SYSTEM
[DefaultInstall]
CopyFiles = @classXcoinst.dll
AddReg = CoInstaller_AddReg
[CoInstaller_AddReg]
HKLM,System\CurrentControlSet\Control\CoDeviceInstallers, \
{setup-class-GUID},0x00010008, "classXcoinst.dll,classXCoInstaller"
; above line uses the line continuation character ()
Этот пример INF копирует файлclassXcoinst.dll в системный каталог и делает запись для класса setup-class-GUID в ключе CoDeviceInstallers . Запись в разделе Xxx_AddReg указывает два флага: флаг "00010000" указывает, что запись является REG_MULTI_SZ, а флаг "00000008" указывает, что новое значение должно быть добавлено к любому существующему значению (если новое значение еще не присутствует в строке).
Такой inf-файл, регистрирующий совместный установщик класса, можно активировать с помощью установки правой кнопкой мыши или с помощью приложения, которое вызывает SetupInstallFromInfSection.