Seção INF DDInstall.CoInstallers

Cuidado

A partir do Windows 11 versão 22H2, um pacote de driver que usa esta seção não está mais qualificado para uma assinatura do Centro de Desenvolvedores de Hardware.

Pacotes de driver universais e Drivers do Windows não podem usar esta seção.

Esta seção opcional registra um ou mais co-instaladores específicos do dispositivo fornecidos na mídia de distribuição para complementar as operações de instaladores de classe de dispositivo existentes.

[install-section-name.CoInstallers] |
[install-section-name.nt.CoInstallers] | 
[install-section-name.ntx86.CoInstallers] | 
[install-section-name.ntia64.CoInstallers] | (Windows XP and later versions of Windows)
[install-section-name.ntamd64.CoInstallers] | (Windows XP and later versions of Windows)
[install-section-name.ntarm.CoInstallers] | (Windows 8 and later versions of Windows)
[install-section-name.ntarm64.CoInstallers] (Windows 10 version 1709 and later versions of Windows)
  
AddReg=add-registry-section[,add-registry-section]... 
CopyFiles=@filename | file-list-section[,file-list-section]...
[Include=filename.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
[DelFiles=file-list-section[,file-list-section]...]
[RenFiles=file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...] 
[BitReg=bit-registry-section[,bit-registry-section]...]
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]
... 

Entradas

AddReg=add-registry-section[,add-registry-section]...
Faz referência a uma ou mais seções de add-registrydefinidas pelo inf-writer que armazenam informações do Registro sobre os co-instaladores fornecidos.

Um HKR especificado em tal seção de registro de adição designa o caminho do Registro de "chave de software" do dispositivo que está sendo instalado. Portanto, para um co-instalador específico do dispositivo, ele grava (ou modifica) uma entrada de valor CoInstallers32 nessa chave de "software" por dispositivo/driver acessível pelo usuário.

Para um co-instalador específico da classe, ele registra os novos co-instaladores modificando o conteúdo do apropriado . CoDeviceInstallers\SetupClassGUID subchaves. O caminho das subchaves SetupClassGUID do registro apropriado deve ser especificado explicitamente nas seções de add-registry referenciadas.

Para obter mais informações, consulte Diretiva InF AddReg.

CopyFiles=@filename | file-list-section*[,file-list-section]...
Transfere os arquivos do co-instalador de origem para o destino no computador de destino, geralmente referenciando um ou mais arquivos inf-writer-defined file-list-sectionem outro lugar no arquivo INF. Essa seção de lista de arquivos especifica os arquivos do co-instalador a serem copiados da mídia de origem para o diretório de destino no destino.

No entanto, os arquivos INF do sistema que instalam os co-instaladores nunca usam essa diretiva em uma DDInstall. Seção CoInstallers .

Para obter mais informações, consulte Diretiva CopyFiles do INF.

Include=filename. inf[,filename2.inf]...
Especifica um ou mais arquivos INF fornecidos pelo sistema que contêm seções necessárias para instalar os co-instaladores para esta classe de instalação de dispositivo ou dispositivo. Um arquivo INF com essa entrada geralmente deve especificar Necessidades.

Needs=inf-section-name[,inf-section-name]...
Especifica as seções específicas que devem ser processadas durante a instalação deste dispositivo. Normalmente, essa seção nomeada é uma DDInstall. Seção CoInstallers em um arquivo INF fornecido pelo sistema listado em uma entrada Include . No entanto, pode ser qualquer seção referenciada dentro desse DDInstall. Seção CoInstallers do INF incluído.

DelFiles=file-list-section[,file-list-section]...
Faz referência a uma seção de lista de arquivos que especifica os arquivos a serem removidos do destino. Essa diretiva raramente é usada.

Para obter mais informações, consulte Diretiva INF DelFiles.

RenFiles=file-list-section[,file-list-section]...
Faz referência a uma seção de lista de arquivos que especifica arquivos no destino a serem renomeados antes que os arquivos de origem do co-instalador sejam copiados para o destino. Essa diretiva também raramente é usada.

Para obter mais informações, consulte Diretiva RenFiles do INF.

DelReg=del-registry-section[,del-registry-section]...
Faz referência a uma ou mais seções inf-writer-define delete-registry-section. Essa seção especifica informações obsoletas do Registro sobre os co-instaladores para uma instalação anterior dos mesmos dispositivos que devem ser removidos do registro. Um HKR especificado em tal seção delete-registry designa a mesma subchave do Registro já descrita para a entrada AddReg . Essa diretiva raramente é usada em uma DDInstall. Seção CoInstallers .

Para obter mais informações, consulte Diretiva INF DelReg.

BitReg=bit-registry-section[,bit-registry-section]...
Essa entrada é válida nesta seção, mas quase nunca foi usada. Um HKR especificado em uma seção de registro de bits designa a mesma subchave do Registro já descrita para a entrada AddReg .

Para obter mais informações, consulte Diretiva INF BitReg.

UpdateInis=update-ini-section[,update-ini-section]...
Essa entrada é válida nesta seção, mas quase nunca foi usada.

Para obter mais informações, consulte Diretiva UpdateInis do INF.

UpdateIniFields=update-inifields-section[,update-inifields-section]...
Essa entrada é válida nesta seção, mas quase nunca foi usada.

Para obter mais informações, consulte Diretiva UPDATEIniFields do INF.

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Essa entrada é válida nesta seção, mas quase nunca foi usada.

Para obter mais informações, consulte Diretiva INF Ini2Reg.

Comentários

A seção DDInstall especificada deve ser referenciada em uma entrada específica de dispositivo/modelos na seção Modelos por fabricante do arquivo INF.

Se um INF incluir um DDInstall. Seção Coinstallers , deve haver uma para cada seção DDInstall decorada e não decorada por plataforma. Por exemplo, se um INF contiver uma seção [install-section-name.ntx86] e uma seção [install-section-name] e registrar co-instaladores específicos do dispositivo, o INF deverá incluir um [install-section-name.ntx86. Seção Coinstallers] e um [install-section-name. Seção Coinstallers] . Para obter mais informações sobre como usar as extensões .nt, .ntx86, .ntia64, .ntamd64, .ntarm e .ntarm64 definidas pelo sistema, consulte Criando arquivos INF para várias plataformas e sistemas operacionais.

Cada diretiva em uma DDInstall. A seção CoInstallers pode referenciar mais de um nome de seção definido pelo gravador INF. No entanto, cada seção nomeada adicional deve ser separada da próxima com uma vírgula (,).

Cada nome de seção criado por diretiva deve ser exclusivo dentro do arquivo INF e deve seguir as regras gerais para definir nomes de seção. Para obter mais informações sobre essas regras, consulte Regras de sintaxe geral para arquivos INF.

Um co-instalador é uma DLL do Win32 que normalmente grava informações de configuração extras no registro ou executa outras tarefas de instalação que exigem informações dinâmicas e específicas do sistema que não estão disponíveis quando um INF é criado. Um co-instalador específico do dispositivo complementa as operações de instalação do instalador de dispositivo do sistema operacional ou do instalador de classe apropriado quando esse dispositivo é instalado.

Para obter mais informações sobre como escrever e usar co-instaladores, consulte Escrevendo um co-instalador.

Instalando imagens do co-instalador

Todos os arquivos do co-instalador devem ser copiados para o diretório %SystemRoot%\system32 . Como qualquer operação CopyFiles inf, o destino é controlado explicitamente para uma seção de lista de arquivos nomeada na seção DestinationDirs do arquivo INF pelo valor dirid 11 ou fornecendo esse valor dirid para a entrada DefaultDestDir.

Registrando Device-Specific co-instaladores

O registro de um ou mais co-instaladores específicos do dispositivo requer a adição de uma entrada de valor tipo REG_MULTI_SZ ao Registro. Especifique uma seção add-registry referenciada pela diretiva AddReg usando o seguinte formulário geral:

[DDInstall.CoInstallers_DeviceAddReg]
 
HKR,,CoInstallers32,0x00010000,"DevSpecificCoInstall.dll
   [,DevSpecificEntryPoint]"[,"DevSpecific2CoInstall.dll
      [,DevSpecific2EntryPoint]"...] 

A entrada HKR é listada como uma única linha dentro do arquivo INF e cada DLL de co-instalador específica do dispositivo fornecida deve ter um nome exclusivo. Depois que os co-instaladores listados forem registrados, o instalador do dispositivo do sistema os chamará em cada etapa subsequente do processo de instalação desse dispositivo.

Se o DevSpecificEntryPoint opcional for omitido, o nome de rotina coDeviceInstall padrão será usado como o ponto de entrada da DLL do co-instalador.

Para obter mais informações, consulte Registrando um co-instalador do Device-Specific.

Registrando Device-Class co-instaladores

Para adicionar uma entrada de valor (e uma subchave de classe de instalação, se ela ainda não existir) para um ou mais co-instaladores de classe de dispositivo ao registro, uma seção add-registry referenciada pela diretiva AddReg tem o seguinte formulário geral:

[DDInstall.CoInstallers_ClassAddReg]
 
HKLM,System\CurrentControlSet\Control
    \CoDeviceInstallers,{SetupClassGUID},
       0x00010008,"DevClssCoInst.dll[,DevClssEntryPoint]" 
 ...

Cada entrada em tal seção de registro de suplemento é listada como uma única linha dentro do arquivo INF, e cada DLL de co-instalador de classe fornecida deve ter um nome exclusivo. Se os co-instaladores fornecidos devem ser usados para mais de uma classe de configuração de dispositivo, essa seção add-registry pode ter mais de uma entrada, cada uma com o valor SetupClassGUID apropriado.

Esse co-instalador de classe de dispositivo complementar não deve substituir nenhum co-instalador já registrado para um instalador de classe existente. Portanto, o co-instalador de classe deve ter um nome exclusivo e o valor de tipo REG_MULTI_SZ fornecido deve ser acrescentado (conforme indicado pelo 8 no valor de sinalizadores 0x0010008) às entradas do co-instalador específicas da classe, se houver, já presentes na subchave {SetupClassGUID}.

Observação

As funções SetupAPI nunca acrescentam uma .dllDevClssCoInstall duplicada a uma entrada de valor se um co-instalador com o mesmo nome já estiver registrado.

O INF para um co-instalador de classe de dispositivo suplementar pode ser ativado por uma instalação com o botão direito do mouse ou por meio de uma chamada para SetupInstallFromInfSection feita por um aplicativo de instalação de dispositivo.

Exemplos

Este exemplo mostra o DDInstall. Seção CoInstallers para adaptadores de rede serial IrDA. O INF fornecido pelo sistema para essas NICs IrDA (serial) fornece um co-instalador para o instalador de classe IrDA do sistema.

; DDInstall section
[PNP.NT]
AddReg=ISIR.reg, Generic.reg, Serial.reg
PromptForPort=0     ; This is handled by IRCLASS.DLL
LowerFilters=SERIAL ; This is handled by IRCLASS.DLL
BusType=14
Characteristics=0x4 ; NCF_PHYSICAL 

; ... PNP.NT.Services section omitted here
[PNP.NT.CoInstallers]
AddReg = ISIR.CoInstallers.reg 
; ...

[IRSIR.reg]
HKR, Ndi, HelpText, 0, %IRSIR.Help%
HKR, Ndi, Service, 0, "IRSIR"
HKR, Ndi\Interfaces, DefUpper, 0, "ndisirda"
HKR, Ndi\Interfaces, DefLower, 0, "nolower"
HKR, Ndi\Interfaces, UpperRange, 0, "ndisirda"
HKR, Ndi\Interfaces, LowerRange, 0, "nolower"

[Generic.reg]
HKR,,InfraredTransceiverType,0,"0"

[Serial.reg]
HKR,,SerialBased,0, "0"

[ISIR.CoInstallers.reg]
HKR,,CoInstallers32,0x00010000,"IRCLASS.dll,IrSIRClassCoInstaller"

; ... Services and Event Log registry sections omitted here
[Strings]
; ...
IRSIR.Help = "An IrDA serial infrared device is a built-in COM port or 
external transceiver which transmits infrared pulses. This NDIS 
miniport driver installs as a network adapter and binds to the FastIR 
protocol."

O PNP anterior. NT. A seção CoInstallers referenciou apenas uma seção de add-registry específica do co-instalador.

Ele não tem nenhuma diretiva CopyFiles porque esse INF fornecido pelo sistema instala um conjunto de dispositivos de rede IrDA. Como todos os arquivos INF do sistema, esse arquivo INF usa a entrada LayoutFile em sua seção Versão para transferir o arquivo do co-instalador para o destino.

Qualquer DDInstall. A seção CoInstallers em um INF fornecido por um IHV ou OEM requer uma diretiva CopyFiles e também as seções SourceDisksNames e SourceDisksFiles .

Confira também

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelReg

DestinationDirs

Ini2Reg

RenFiles

SourceDisksFiles

SourceDisksNames

UpdateIniFields

Versão