Partilhar via


Registrando um co-instalador de classe

Observação

Os recursos descritos nesta seção não têm suporte em pacotes de driver móveis ou universais. Consulte Usando um arquivo INF universal.

Para registrar um co-instalador para cada dispositivo de uma classe de instalação específica, crie uma entrada de registro como a seguinte na subchave HKLM\System\CurrentControlSet\Control\CoDeviceInstallers :

{setup-class-GUID}: REG_MULTI_SZ : "XyzCoInstall.dll,XyzCoInstallEntryPoint\0\0"

O sistema cria a chave CoDeviceInstallers . Setup-class-GUID especifica o GUID para a classe de configuração do dispositivo. Se o co-instalador se aplicar a mais de uma classe de dispositivos, crie uma entrada de valor separada para cada classe de configuração.

Você não deve substituir outros co-instaladores que foram gravados anteriormente na chave setup-class-GUID . Leia a chave, acrescente a cadeia de caracteres do co-instalador à lista REG_MULTI_SZ e escreva a chave de volta no Registro.

Se você omitir o CoInstallEntryPoint, o padrão será CoDeviceInstall.

A DLL do co-instalador também deve ser copiada para o diretório do sistema.

O co-instalador de classe está disponível para ser chamado para dispositivos e serviços relevantes depois que o arquivo for copiado e a entrada do Registro for feita.

Em vez de criar manualmente a entrada do Registro para registrar um co-instalador de classe, você pode registrá-lo usando um arquivo INF como o exemplo a seguir:

[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 ()

Este inf de exemplo copia o arquivo classXcoinst.dll para o diretório do sistema e faz uma entrada para a classe setup-class-GUID sob a chave CoDeviceInstallers . A entrada na seção Xxx_AddReg especifica dois sinalizadores: o sinalizador "00010000" especifica que a entrada é um REG_MULTI_SZ e o sinalizador "00000008" especifica que o novo valor deve ser acrescentado a qualquer valor existente (se o novo valor ainda não estiver presente na cadeia de caracteres).

Esse INF que registra um co-instalador de classe pode ser ativado por uma instalação com o botão direito do mouse ou por meio de um aplicativo que chama SetupInstallFromInfSection.