Compartir a través de


Sección INF DDInstall.CoInstallers

Precaución

A partir de Windows 11 versión 22H2, un paquete de controladores que usa esta sección ya no es apto para una firma del Centro para desarrolladores de hardware.

Los paquetes de controladores universales y los controladores de Windows no pueden usar esta sección.

Esta sección opcional registra uno o varios co-instaladores específicos del dispositivo proporcionados en el medio de distribución para complementar las operaciones de los instaladores de clase 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]...
Hace referencia a una o varias secciones de add-registry-finedde INF-writer que almacenan información del Registro sobre los co-instaladores proporcionados.

Un HKR especificado en esta sección del registro de complementos designa la ruta de acceso del Registro de "clave de software" del dispositivo que se está instalando. Por lo tanto, para un coinstalación específico del dispositivo, escribe (o modifica) una entrada de valor CoInstallers32 en esta clave "software" accesible por dispositivo o controlador al usuario.

Para un co-instalador específico de clase, registra los nuevos co-instaladores modificando el contenido del archivo .. Subclaves CoDeviceInstallers\SetupClassGUID . La ruta de acceso de las subclaves SetupClassGUID del Registro adecuadas debe especificarse explícitamente en las secciones de add-registry a las que se hace referencia.

Para obtener más información, vea Inf AddReg Directive.

CopyFiles=@filename | file-list-section*[,file-list-section]...
Transfiere los archivos co-instaladores de origen al destino en el equipo de destino, normalmente haciendo referencia a una o varias secciones inf-writer-fined file-list-sectionen otro lugar del archivo INF. Esta sección de lista de archivos especifica los archivos coins installer que se van a copiar del medio de origen al directorio de destino del destino.

Sin embargo, los archivos INF del sistema que instalan coinstaladores nunca usan esta directiva en un DDInstall. Sección CoInstallers .

Para obtener más información, vea Inf CopyFiles (Directiva) .

Include=filename. inf[,filename2.inf]...
Especifica uno o varios archivos INF proporcionados por el sistema que contienen secciones necesarias para instalar los co-instaladores para esta clase de instalación de dispositivo o dispositivo. Normalmente, un archivo INF con esta entrada debe especificar Needs.

Needs=inf-section-name[,inf-section-name]...
Especifica las secciones concretas que se deben procesar durante la instalación de este dispositivo. Normalmente, esta sección con nombre es DDInstall. Sección CoInstallers dentro de un archivo INF proporcionado por el sistema que aparece en una entrada Include . Sin embargo, puede ser cualquier sección a la que se haga referencia dentro de un DDInstall de este tipo. Sección CoInstallers del INF incluido.

DelFiles=file-list-section[,file-list-section]...
Hace referencia a una sección de lista de archivos que especifica los archivos que se van a quitar del destino. Esta directiva rara vez se usa.

Para obtener más información, vea INF DelFiles (Directiva).

RenFiles=file-list-section[,file-list-section]...
Hace referencia a una sección de lista de archivos que especifica los archivos en el destino al que se va a cambiar el nombre antes de copiar los archivos de origen del co-instalador en el destino. Esta directiva también se usa rara vez.

Para obtener más información, vea Inf RenFiles (Directiva RenFiles).

DelReg=del-registry-section[,del-registry-section]...
Hace referencia a uno o varios inf-writer-define delete-registry-sections. Esta sección especifica información obsoleta del Registro sobre los coinstaladores para una instalación anterior de los mismos dispositivos que se deben quitar del registro. Un HKR especificado en esta sección delete-registry designa la misma subclave del Registro que ya se ha descrito para la entrada AddReg . Esta directiva rara vez se usa en un DDInstall. Sección CoInstallers .

Para obtener más información, vea INF DelReg Directive.

BitReg=bit-registry-section[,bit-registry-section]...
Esta entrada es válida en esta sección, pero casi nunca se usa. Un HKR especificado en esta sección de registro de bits designa la misma subclave del Registro que ya se ha descrito para la entrada AddReg .

Para obtener más información, vea Inf BitReg Directive.

UpdateInis=update-ini-section[,update-ini-section]...
Esta entrada es válida en esta sección, pero casi nunca se usa.

Para obtener más información, vea Inf UpdateInis (Directiva).

UpdateIniFields=update-inifields-section[,update-inifields-section]...
Esta entrada es válida en esta sección, pero casi nunca se usa.

Para obtener más información, vea Inf UpdateIniFields (Directiva).

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Esta entrada es válida en esta sección, pero casi nunca se usa.

Para obtener más información, vea INF Ini2Reg Directive.

Comentarios

Se debe hacer referencia a la sección DDInstall especificada en una entrada específica de dispositivos o modelos en la sección Modelos por fabricante del archivo INF.

Si un INF incluye un DDInstall. La sección Coinstallers debe haber una para cada sección DDInstall con decoración de plataforma y sin codificar. Por ejemplo, si un INF contiene una sección [install-section-name.ntx86] y una sección [install-section-name] y registra los co-instaladores específicos del dispositivo, el INF debe incluir ambos [install-section-name.ntx86. Sección Coinstallers] y un [install-section-name. Sección Coinstallers]. Para obtener más información sobre cómo usar las extensiones .nt, .nt, .ntx86, .ntia64, .ntamd64, .ntarm y .ntarm64 , vea Creating INF Files for Multiple Platforms and Operating Systems.

Cada directiva de un DDInstall. La sección CoInstallers puede hacer referencia a más de un nombre de sección definido por INF-writer. Sin embargo, cada sección con nombre adicional debe estar separada de la siguiente con una coma (,).

Cada nombre de sección creado por directivas debe ser único dentro del archivo INF y debe seguir las reglas generales para definir nombres de sección. Para obtener más información sobre estas reglas, vea Reglas de sintaxis general para archivos INF.

Un co-instalador es un archivo DLL de Win32 que normalmente escribe información de configuración adicional en el Registro o realiza otras tareas de instalación que requieren información generada dinámicamente específica del sistema que no está disponible cuando se crea un INF. Un coinstalación específico del dispositivo complementa las operaciones de instalación del instalador del dispositivo del sistema operativo o del instalador de clase adecuado cuando se instala ese dispositivo.

Para obtener más información sobre cómo escribir y usar co-instaladores, consulte Escritura de un co-instalador.

Instalación de imágenes de coinstaladores

Todos los archivos co-instaladores deben copiarse en el directorio %SystemRoot%\system32 . Al igual que cualquier operación CopyFiles inf, el destino se controla explícitamente para una sección con nombre file-list-section en la sección DestinationDirs del archivo INF por el valor dirid 11 o proporcionando este valor dirid para la entrada DefaultDestDir.

Registro de Device-Specific co-instaladores

El registro de uno o varios coins instaladores específicos del dispositivo requiere agregar una entrada de valor con tipo REG_MULTI_SZ al registro. Especifique una sección add-registry a la que hace referencia la directiva AddReg mediante el siguiente formato general:

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

La entrada HKR se muestra como una sola línea dentro del archivo INF y cada dll del coinstalador específico del dispositivo proporcionado debe tener un nombre único. Una vez registrados los coinstaladores enumerados, el instalador del dispositivo del sistema los llama en cada paso posterior del proceso de instalación de ese dispositivo.

Si se omite DevSpecificEntryPoint opcional, el nombre de rutina CoDeviceInstall predeterminado se usa como punto de entrada del archivo DLL del co-instalador.

Para obtener más información, consulte Registro de un Device-Specific co-instalador.

Registro de Device-Class co-instaladores

Para agregar una entrada de valor (y una subclave de clase de instalación, si aún no existe) para uno o varios co-instaladores de clase de dispositivo al Registro, una sección add-registry a la que hace referencia la directiva AddReg tiene el siguiente formato general:

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

Cada entrada de este tipo de sección del registro de complementos se muestra como una sola línea dentro del archivo INF y cada archivo DLL de co-instalador de clase proporcionada debe tener un nombre único. Si los coinstaladores proporcionados deben usarse para más de una clase de instalación de dispositivo, esta sección del complemento puede tener más de una entrada, cada una con el valor SetupClassGUID adecuado.

Este co-instalador complementario de clase de dispositivo no debe reemplazar los co-instaladores ya registrados para un instalador de clase existente. Por lo tanto, el co-instalador de clase debe tener un nombre único y el valor de tipo REG_MULTI_SZ proporcionado debe anexarse (como se indica en el valor 8de lamarca 0x0010008) a las entradas de coinstaladores específicas de la clase, si las hay, ya presentes en la subclave {SetupClassGUID}.

Nota

Las funciones SetupAPI nunca anexan un devClssCoInstall duplicado .dll a una entrada de valor si ya está registrado un coinstalador del mismo nombre.

El INF para un co-instalador de clase de dispositivo complementario se puede activar mediante una instalación con el botón derecho o a través de una llamada a SetupInstallFromInfSection realizada por una aplicación de instalación de dispositivos.

Ejemplos

En este ejemplo se muestra DDInstall. Sección CoInstallers para adaptadores de red serie irDA. El INF suministrado por el sistema para estas NIC irDA (serie) proporciona un coinsertor al instalador de clase IrDA del 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."

PNP anterior. NT. La sección CoInstallers solo hace referencia a una sección de add-registry específica del instalador.

No tiene ninguna directiva CopyFiles porque este INF proporcionado por el sistema instala un conjunto de dispositivos de red IrDA. Al igual que todos los archivos INF del sistema, este archivo INF usa la entrada LayoutFile en su sección Versión para transferir el archivo co-instalador al destino.

Cualquier DDInstall. La sección CoInstallers de un INF proporcionado por un IHV o OEM requiere una directiva CopyFiles y también secciones SourceDisksNames y SourceDisksFiles .

Consulte también

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelReg

DestinationDirs

Ini2Reg

RenFiles

SourceDisksFiles

SourceDisksNames

UpdateIniFields

Versión