Section INF DDInstall.CoInstallers

Attention

À compter de Windows 11 version 22H2, un package de pilotes utilisant cette section n’est plus éligible à une signature du Centre de développement matériel.

Les packages de pilotes universels et les pilotes Windows ne peuvent pas utiliser cette section.

Cette section facultative enregistre un ou plusieurs co-programmes d’installation spécifiques à l’appareil fournis sur le support de distribution pour compléter les opérations des programmes d’installation de classe d’appareils existants.

[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]...]
... 

Entrées

AddReg=add-registry-section[,add-registry-section]...
Fait référence à un ou plusieurs add-registry-sectiondéfinis par INF writer qui stockent des informations de Registre sur les co-programmes d’installation fournis.

Un HKR spécifié dans cette section de registre de compléments désigne le chemin d’accès de registre « clé logicielle » de l’appareil en cours d’installation. Par conséquent, pour un co-programme d’installation spécifique à un appareil, il écrit (ou modifie) une entrée de valeur CoInstallers32 dans cette clé « software » accessible par périphérique/pilote.

Pour un co-programme d’installation spécifique à une classe, il inscrit les nouveaux co-programmes d’installation en modifiant le contenu du .. Sous-clés CoDeviceInstallers\SetupClassGUID . Le chemin d’accès des sous-clés SetupClassGUID de registre appropriées doit être spécifié explicitement dans les sections de registre de complément référencées.

Pour plus d’informations, consultez Directive AddReg INF.

CopyFiles=@filename | file-list-section*[,file-list-section]...
Transfère les fichiers de co-programme d’installation source vers la destination sur l’ordinateur cible, généralement en référençant un ou plusieurs fichiers-list-section définis par inf-writer-defined ailleursdans le fichier INF. Cette section de liste de fichiers spécifie les fichiers de co-programme d’installation à copier à partir du média source vers le répertoire de destination sur la cible.

Toutefois, les fichiers INF système qui installent des co-programmes d’installation n’utilisent jamais cette directive dans un DDInstall. Section CoInstallers .

Pour plus d’informations, consultez Directive CopyFiles INF.

Include=filename. inf[,filename2.inf]...
Spécifie un ou plusieurs fichiers INF fournis par le système qui contiennent des sections nécessaires pour installer les co-programmes d’installation de cet appareil ou de cette classe d’installation d’appareil. Un fichier INF avec cette entrée doit généralement spécifier Des besoins.

Needs=inf-section-name[,inf-section-name]...
Spécifie les sections particulières qui doivent être traitées pendant l’installation de cet appareil. En règle générale, une telle section nommée est un DDInstall. Section CoInstallers dans un fichier INF fourni par le système qui est répertorié dans une entrée Include . Toutefois, il peut s’agir de n’importe quelle section référencée dans un tel DDInstall. Section CoInstallers du fichier INF inclus.

DelFiles=file-list-section[,file-list-section]...
Fait référence à une section de liste de fichiers spécifiant les fichiers à supprimer de la cible. Cette directive est rarement utilisée.

Pour plus d’informations, consultez Directive Inf DelFiles.

RenFiles=file-list-section[,file-list-section]...
Fait référence à une section de liste de fichiers spécifiant les fichiers sur la destination à renommer avant que les fichiers sources du co-programme d’installation soient copiés sur la cible. Cette directive est également rarement utilisée.

Pour plus d’informations, consultez Directive RenFiles INF.

DelReg=del-registry-section[,del-registry-section]...
Référence un ou plusieurs INF-writer-define delete-registry-sections. Cette section spécifie des informations de Registre obsolètes sur les co-programmes d’installation d’une installation précédente des mêmes appareils qui doivent être supprimés du Registre. Un HKR spécifié dans une telle section delete-registry désigne la même sous-clé de Registre que celle déjà décrite pour l’entrée AddReg . Cette directive est rarement utilisée dans un DDInstall. Section CoInstallers .

Pour plus d’informations, consultez Directive DelReg INF.

BitReg=bit-registry-section[,bit-registry-section]...
Cette entrée est valide dans cette section, mais elle n’est presque jamais utilisée. Un HKR spécifié dans une telle section de registre de bits désigne la même sous-clé de Registre que celle déjà décrite pour l’entrée AddReg .

Pour plus d’informations, consultez Directive BitReg INF.

UpdateInis=update-ini-section[,update-ini-section]...
Cette entrée est valide dans cette section, mais elle n’est presque jamais utilisée.

Pour plus d’informations, consultez Directive Inf UpdateInis.

UpdateIniFields=update-inifields-section[,update-inifields-section]...
Cette entrée est valide dans cette section, mais elle n’est presque jamais utilisée.

Pour plus d’informations, consultez Directive INF UpdateIniFields.

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Cette entrée est valide dans cette section, mais elle n’est presque jamais utilisée.

Pour plus d’informations, consultez Directive INF Ini2Reg.

Remarques

La section DDInstall spécifiée doit être référencée dans une entrée spécifique à l’appareil/aux modèles sous la section Modèles par fabricant du fichier INF.

Si un inf inclut un DDInstall. Section Coinstallers , il doit y en avoir une pour chaque section DDInstall décorée et non décorée à la plateforme. Par exemple, si un INF contient une section [install-section-name.ntx86] et une section [install-section-name] et qu’il enregistre des co-programmes d’installation spécifiques à l’appareil, l’INF doit inclure à la fois un [install-section-name.ntx86. Section Coinstallers]et [install-section-name. Section Coinstallers]. Pour plus d’informations sur l’utilisation des extensions .nt, .ntx86, .ntia64, .ntamd64, .ntarm et .ntarm64 définies par le système, consultez Création de fichiers INF pour plusieurs plateformes et systèmes d’exploitation.

Chaque directive dans un DDInstall. La section CoInstallers peut référencer plusieurs noms de section définis par l’enregistreur INF. Toutefois, chaque section nommée supplémentaire doit être séparée de la suivante par une virgule (,).

Chaque nom de section créé par une directive doit être unique dans le fichier INF et doit suivre les règles générales de définition des noms de section. Pour plus d’informations sur ces règles, consultez Règles de syntaxe générales pour les fichiers INF.

Un co-programme d’installation est une DLL Win32 qui écrit généralement des informations de configuration supplémentaires dans le Registre ou effectue d’autres tâches d’installation qui nécessitent des informations spécifiques au système générées dynamiquement qui ne sont pas disponibles lors de la création d’un inf. Un co-programme d’installation spécifique à l’appareil complète les opérations d’installation du programme d’installation du système d’exploitation ou du programme d’installation de classe approprié lors de l’installation de cet appareil.

Pour plus d’informations sur l’écriture et l’utilisation de co-programmes d’installation, consultez Écriture d’un co-programme d’installation.

Installation d’images de co-programme d’installation

Tous les fichiers de co-programme d’installation doivent être copiés dans le répertoire %SystemRoot%\system32 . Comme toute opération Inf CopyFiles , la destination est contrôlée explicitement pour une section de liste de fichiers nommée dans la section DestinationDirs du fichier INF par la valeur dirid11 ou en fournissant cette valeur dirid pour l’entrée DefaultDestDir .

Inscription de Device-Specific co-programmes d’installation

L’inscription d’un ou de plusieurs co-programmes d’installation spécifiques à l’appareil nécessite l’ajout d’une entrée de valeur de type REG_MULTI_SZ au Registre. Spécifiez une section de registre supplémentaire référencée par la directive AddReg à l’aide du formulaire général suivant :

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

L’entrée HKR est répertoriée sous la forme d’une seule ligne dans le fichier INF, et chaque DLL de co-programme d’installation spécifique à l’appareil fournie doit avoir un nom unique. Une fois les co-programmes d’installation répertoriés inscrits, le programme d’installation de l’appareil du système les appelle à chaque étape suivante du processus d’installation de cet appareil.

Si le DevSpecificEntryPoint facultatif est omis, le nom de routine CoDeviceInstall par défaut est utilisé comme point d’entrée de la DLL de co-programme d’installation.

Pour plus d’informations, consultez Inscription d’un co-programme d’installation Device-Specific.

Inscription de Device-Class co-programmes d’installation

Pour ajouter une entrée de valeur (et une sous-clé de classe d’installation, si elle n’existe pas déjà) pour un ou plusieurs co-programmes d’installation de classe d’appareil au Registre, une section de registre supplémentaire référencée par la directive AddReg a la forme générale suivante :

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

Chaque entrée d’une telle section de registre de compléments est répertoriée sous la forme d’une seule ligne dans le fichier INF, et chaque DLL de co-programme d’installation de classe fournie doit avoir un nom unique. Si les co-programmes d’installation fournis doivent être utilisés pour plusieurs classes d’installation d’appareil, cette section de registre d’ajout peut avoir plusieurs entrées, chacune avec la valeur SetupClassGUID appropriée.

Un tel co-programme d’installation supplémentaire de classe d’appareil ne doit pas remplacer les co-programmes d’installation déjà inscrits pour un programme d’installation de classe existant. Par conséquent, le co-programme d’installation de classe doit avoir un nom unique et la valeur de type REG_MULTI_SZ fournie doit être ajoutée (comme indiqué par la valeur 8 dans la valeur des indicateurs0x0010008) aux entrées de co-programme d’installation spécifiques à la classe, le cas échéant, déjà présentes dans la sous-clé {SetupClassGUID}.

Notes

Les fonctions SetupAPI n’ajoutent jamais de .dllDevClssCoInstall en double à une entrée de valeur si un co-programme d’installation du même nom est déjà inscrit.

L’INF d’un co-programme d’installation supplémentaire de classe d’appareil peut être activé par une installation avec le bouton droit de la souris ou par le biais d’un appel à SetupInstallFromInfSection effectué par une application d’installation d’appareil.

Exemples

Cet exemple montre DDInstall. Section CoInstallers pour les cartes réseau série IrDA. L’INF fourni par le système pour ces cartes réseau IrDA (série) fournit un co-programme d’installation au programme d’installation de la classe IrDA système.

; 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 précédent. NT. La section CoInstallers a uniquement référencé une section de registre complémentaire spécifique au co-programme d’installation .

Il n’a pas de directive CopyFiles , car ce fichier INF fourni par le système installe un ensemble de périphériques réseau IrDA. Comme tous les fichiers INF système, ce fichier INF utilise l’entrée LayoutFile dans sa section Version pour transférer le fichier de co-programme d’installation vers la destination.

N’importe quel DDInstall. La section CoInstallers dans un INF fourni par un IHV ou un OEM nécessite une directive CopyFiles et également des sections SourceDisksNames et SourceDisksFiles.

Voir aussi

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelReg

DestinationDirs

Ini2Reg

RenFiles

SourceDisksFiles

SourceDisksNames

UpdateIniFields

Version