Section INF ClassInstall32

Attention

Si vous créez un package universel ou Windows Driver, cette section n’est pas valide. Consultez Utilisation d’un fichier INF universel et Prise en main avec des pilotes Windows.

Une section ClassInstall32 installe une nouvelle classe d’installation d’appareil pour les appareils de la nouvelle classe.

[ClassInstall32] | 
[ClassInstall32.nt] | 
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows) 
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows) 

AddReg=add-registry-section[,add-registry-section]...
[AddProperty=add-property-section[,add-property-section] ...]  (Windows Vista and later versions of Windows)
[Copyfiles=@filename | file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...]
[DelProperty=del-property-section[,del-property-section] ...]  (Windows Vista and later versions of Windows)
[Delfiles=file-list-section[,file-list-section]...]
[Renfiles=file-list-section[,file-list-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 à une ou plusieurs sections nommées qui contiennent des entrées de valeur spécifiques à la classe à écrire dans le Registre. En règle générale, cela est utilisé pour donner à la nouvelle classe d’installation d’appareil au moins un nom convivial que d’autres composants peuvent récupérer ultérieurement à partir du Registre et utiliser pour ouvrir les appareils installés de cette nouvelle classe d’appareil ou pour « installer » n’importe quel fournisseur de pages de propriétés pour cette classe d’installation d’appareil, et ainsi de suite.

Une spécification HKR dans une section add-registry désigne la clé de Registre qui contient les paramètres de cette classe. Pour plus d’informations, consultez la section Remarques suivante.

Pour plus d’informations, consultez Directive INF AddReg.

AddProperty=add-property-section[,add-property-section]...
(Windows Vista et versions ultérieures de Windows) Fait référence à une ou plusieurs sections de fichier INF qui modifient les propriétés d’appareil définies pour une classe d’installation d’appareil. Vous devez utiliser une directive Inf AddProperty uniquement pour définir une propriété de classe de configuration d’appareil qui est nouvelle pour Windows Vista ou les versions ultérieures des systèmes d’exploitation Windows.

Pour les propriétés de classe d’appareil qui ont été introduites précédemment sur Windows Server 2003, Windows XP ou Windows 2000 et qui ont des valeurs d’entrée de Registre correspondantes, vous devez continuer à utiliser des directives AddReg INF pour définir la propriété de classe de configuration d’appareil. Ces instructions s’appliquent aux propriétés définies par le système et aux propriétés personnalisées.

Pour plus d’informations sur l’utilisation de la directive AddProperty , consultez Utilisation de la directive INF AddProperty et de la directive INF DelProperty.

Copyfiles=@filename | file-list-section[,file-list-section]...
Spécifie un fichier nommé à copier du média source vers la destination ou fait référence à une ou plusieurs sections nommées dans lesquelles les fichiers pertinents pour la classe sur le média source sont spécifiés pour le transfert vers la destination. L’entrée DefaultDestDir dans la section DestinationDirs de l’INF spécifie le répertoire de destination pour tout fichier unique spécifique à la classe à copier.

Pour plus d’informations, consultez Directive INF CopyFiles.

Notes

Les fichiers INF fournis par le système pour les classes de configuration d’appareil n’utilisent pas cette directive dans cette section.

DelReg=del-registry-section[,del-registry-section]...
Fait référence à une ou plusieurs sections nommées dans lesquelles des entrées de valeur ou des clés sont spécifiées pour être supprimées du Registre lors de l’installation du programme d’installation de classe.

Toutefois, si une {SetupClassGUID} particulière existe déjà en tant que classe installée, le code de configuration système ignore ensuite la section ClassInstall32 de tout INF qui spécifie la même valeur GUID dans sa section Version . Par conséquent, un inf ne peut pas remplacer un programme d’installation de classe existant ou modifier son comportement à partir d’une section ClassInstall32 .

Pour plus d’informations, consultez Directive INF DelReg.

DelProperty=del-property-section[,del-property-section]...
(Windows Vista et versions ultérieures de Windows) Fait référence à une ou plusieurs sections de fichier INF qui suppriment les propriétés d’appareil définies pour une classe d’installation d’appareil. Vous devez utiliser une directive INF DelProperty uniquement pour supprimer une propriété de classe d’installation d’appareil qui est nouvelle pour Windows Vista ou les versions ultérieures des systèmes d’exploitation Windows.

Pour les propriétés de classe d’appareil qui ont été introduites précédemment sur Windows Server 2003, Windows XP ou Windows 2000 et qui ont des valeurs d’entrée de Registre correspondantes, vous devez continuer à utiliser des directives Inf DelReg pour supprimer la propriété de classe d’installation de l’appareil. Ces instructions s’appliquent aux propriétés définies par le système et aux propriétés personnalisées.

Pour plus d’informations sur l’utilisation de la directive DelProperty , consultez Utilisation de la directive INF AddProperty et de la directive INF DelProperty.

Delfiles=file-list-section[,file-list-section]...
Fait référence à une ou plusieurs sections nommées dans lesquelles les fichiers de classe précédemment installés sur la destination sont spécifiés pour suppression.

Pour plus d’informations, consultez Directive INF DelFiles.

Renfiles=file-list-section[,file-list-section]...
Fait référence à une ou plusieurs sections nommées dans lesquelles les fichiers pertinents pour la classe à renommer sur la destination sont répertoriés.

Pour plus d’informations, consultez Directive INF RenFiles.

BitReg=bit-registry-section[,bit-registry-section]...
Est valide dans cette section, mais presque jamais utilisé.

Pour plus d’informations, consultez Directive INF BitReg.

UpdateInis=update-ini-section[,update-ini-section]...
Est valide dans cette section, mais presque jamais utilisé.

Pour plus d’informations, consultez Directive INF UpdateInis.

UpdateIniFields=update-inifields-section[,update-inifields-section]...
Est valide dans cette section, mais presque jamais utilisé.

Pour plus d’informations, consultez Directive INF UpdateIniFields.

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Est valide dans cette section, mais presque jamais utilisé.

Pour plus d’informations, consultez Directive INF UpdateIniFields.

Remarques

Vous devez inclure une section ClassInstall32 dans un fichier INF d’appareil uniquement pour installer une nouvelle classe d’installation d’appareil personnalisée. Les fichiers INF pour les appareils d’une classe installée, qu’il s’agisse d’une classe d’installation d’appareil fournie par le système ou d’une classe personnalisée, ne doivent pas inclure de section ClassInstall32 . Étant donné que le système traite une section ClassInstall32 uniquement si une classe n’est pas déjà installée, vous ne pouvez pas utiliser une section ClassInstall32 pour réinstaller ou modifier les paramètres d’une classe déjà installée. En particulier, vous ne pouvez pas utiliser une section ClassInstall32 pour ajouter un co-programme d’installation de classe ou un pilote de filtre de classe pour une classe déjà installée. Pour plus d’informations sur l’installation des co-programmes d’installation et des pilotes de filtre, consultez Écriture d’un co-programme d’installation et Installation d’un pilote de filtre.

En règle générale, une section ClassInstall32 a une ou plusieurs directives AddReg pour ajouter des entrées sous une sous-clé SetupClassGUID fournie par le système dans le Registre. Ces entrées peuvent inclure un « nom convivial » spécifique à la classe, un chemin d’installation de classe, une icône de classe, un fournisseur de pages de propriétés, etc.

À l’exception de AddReg et CopyFiles, les autres directives présentées ici sont rarement utilisées dans une section ClassInstall32 .

Pour prendre en charge une distribution multiplateforme des fichiers de pilotes, créez des sections ClassInstall32 spécifiques à la plateforme. Par exemple, toutes les fonctions SetupAPI système qui traitent une section ClassInstall32 recherchent d’abord une section ClassInstall32.ntx86 sur une plateforme x86 et examinent uniquement une section ClassInstall32 non décorée si elles ne trouvent pas de section ClassInstall32.ntx86 . 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.

Notes

Le nom de section ClassInstall32 est également utilisé pour les installations sur les plateformes 64 bits.

À compter de Windows 2000, chaque appareil installé est associé à une classe d’installation d’appareil. Si l’INF d’un appareil à installer n’est pas associé à un nouveau programme d’installation de classe d’appareil, ou si sa spécification ClassGUID= dans la section Version ne correspond pas à un GUID de classe d’installation défini par le système, cet appareil est associé à la classe d’installation de l’appareil avec le nom « Inconnu ».

Le programme d’installation INF pour n’importe quel programme d’installation de classe d’appareil a généralement une directive AddReg dans sa section ClassInstall32 pour définir au moins une section nommée qui crée un nom convivial pour son type d’appareil. Le code d’installation crée automatiquement une clé SetupClassGUID à l’emplacement approprié dans le Registre à partir de la valeur fournie pour l’entrée ClassGUID= dans la section Version de l’INF lorsque le premier appareil de cette (nouvelle) classe d’installation est installé.

L’inf peut utiliser les sections d’ajout de registre référencées dans sa section ClassInstall32 pour spécifier un fournisseur de pages de propriétés et pour exercer un contrôle sur la façon dont sa classe d’appareils est gérée dans l’interface utilisateur.

Cette section add-registry spécifique à la classe se présente sous la forme générale suivante :

[SetupClassAddReg]
 
HKR,,,,%DevClassName% ; device-class friendly name 
[HKR,,Installer32,,"class-installer.dll,class-entry-point"] 
[HKR,,EnumPropPages32,,"prop-provider.dll,provider-entry-point"]
HKR,,Icon,,"icon-number" 
[HKR,,SilentInstall,,1]
[HKR,,NoInstallClass,,1]
[HKR,,NoDisplayClass,,1]

Le système utilise l’icône spécifiée pour représenter votre programme d’installation à l’utilisateur.

  • Si la valeur Icon est positive, elle représente un identificateur de ressource pour une ressource. La ressource est extraite de la DLL du programme d’installation de classe, si la clé Installer32 est spécifiée, ou de la DLL de la page de propriétés, si la clé EnumPropPages32 est spécifiée. La valeur « 0 » représente la première icône de la DLL. La valeur « 1 » est réservée.
  • Si la valeur Icon est négative, la valeur absolue est l’identificateur de ressource de l’icône dans SetupApi.DLL.

La définition des entrées de valeur booléenne SilentInstall, NoDisplayClass et NoInstallClass prédéfinies dans une clé de Registre spécifique à une classe a les effets suivants :

  • La définition de SilentInstall indique aux programmes d’installation d’envoyer des messages contextuels à l’utilisateur qui nécessitent une réponse lors de l’installation des appareils de cette classe, qu’ils soient spécifiés dans les sections DDInstall du fichier INF du programme d’installation de classe ou dans des fichiers INF distincts pour les appareils installés ultérieurement qui déclarent eux-mêmes cette classe en définissant la même spécification ClassGuid={ClassGUID} dans leurs sections De version respectives. Par exemple, les programmes d’installation de la classe système des périphériques de CD-ROM et de disque et le programme d’installation de la classe de port parallèle système définissent SilentInstall dans leurs clés de Registre respectives.

    Si un programme d’installation spécifique à une classe nécessite le redémarrage de l’ordinateur pour n’importe quel appareil qu’il installe, la section de registre complémentaire spécifique à la classe dans son INF ne peut pas avoir cette entrée de valeur.

  • La définition de NoDisplayClass supprime l’affichage visible par l’utilisateur de tous les appareils de cette classe par Gestionnaire de périphériques. Par exemple, les programmes d’installation de classe système pour les imprimantes et les pilotes réseau (y compris les clients, les services et les protocoles) définissent NoDisplayClass dans leurs clés de Registre respectives.

  • Le paramètre NoInstallClass indique qu’aucun appareil de ce type ne nécessite une installation manuelle par un utilisateur final. Par exemple, les programmes d’installation de classe système pour les appareils exclusivement Plug-and-Play (PnP) définissent NoInstallClass dans leurs clés de Registre respectives.

Une section ClassInstall32 peut contenir des directives AddReg pour définir deviceType, DeviceCharacteristics et Security pour les appareils de sa classe d’installation. Pour plus d’informations, consultez la directive INF AddReg .

Exemples

Cet exemple montre la section ClassInstall32 , ainsi que la section nommée qu’elle référence avec la directive AddReg.

[ClassInstall32] 
AddReg=example_class_addreg

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,Icon,,"-1"

En revanche, cet exemple configure un fournisseur de pages de propriétés spécifique à la classe. Cet INF définit également les entrées de valeur SilentInstall et NoInstallClass dans la clé de classe sur TRUE (1).

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,EnumPropPages32,,"ExampleBinary.Dll,ExamplePropPageProvider"
HKR,,SilentInstall,,1
HKR,,NoInstallClass,,1
HKR,,Icon,,"101"

Voir aussi

AddProperty

AddReg

BitReg

CopyFiles

DDInstaller

DelFiles

DelProperty

DelReg

Ini2Reg

Modèles

RenFiles

SetupDiBuildClassInfoList

UpdateIniFields

UpdateInis

Version