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


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

Примечание

Функции, описанные в этом разделе, не поддерживаются в универсальных или мобильных пакетах драйверов. См . раздел Использование универсального 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.