Section INF ClassInstall32
Attention
Si vous construisez un package de pilote universel ou Windows, cette section n’est pas valide. Veuillez consulter la section Utilisation d’un fichier INF universel et Premiers pas dans le développement de pilotes Windows.
Une section ClassInstall32 installe une nouvelle classe de configuration de périphériques pour les périphériques dans 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]...]
Entries
AddReg=add-registry-section[,add-registry-section]...
Fait référence à une ou plusieurs sections nommées contenant des entrées spécifiques à la classe qui doivent être inscrites dans le registre. En général, cela est utilisé pour attribuer au moins un nom convivial à la nouvelle classe de configuration de périphérique que d’autres composants peuvent récupérer ultérieurement du registre et utiliser pour ouvrir des périphériques installés de cette nouvelle classe de périphériques ou pour « installer » tout fournisseur de page de propriétés pour cette classe de configuration de périphérique, etc.
Une spécification HKR dans une section d’ajout de registre désigne la clé de registre contenant les paramètres pour cette classe. Pour plus d’informations supplémentaires, veuillez consulter la section Remarques.
Pour plus d’informations, consultez la section 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 fichiers INF qui modifient les propriétés du périphérique définies pour une classe de configuration de périphérique. Vous devez utiliser une directive INF AddProperty uniquement pour définir une propriété de classe de configuration de périphérique qui est nouvelle pour Windows Vista ou pour les versions ultérieures des systèmes d’exploitation Windows.
Pour les propriétés de classe de périphérique introduites plus tôt sous Windows Server 2003, Windows XP ou Windows 2000, et qui ont des valeurs d’entrée correspondantes dans le registre, vous devez continuer à utiliser des directives INF AddReg pour définir la propriété de classe de configuration de périphérique. Ces directives 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 la section Utilisation de la directive INF AddProperty et de la directive INF DelProperty.
Copyfiles=@filename | file-list-section[,file-list-section]...
Soit spécifie un fichier nommé à copier depuis le support source vers la destination, soit fait référence à une ou plusieurs sections nommées dans lesquelles des fichiers pertinents pour la classe sur le support source sont spécifiés pour être transférés à la destination. L’entrée DefaultDestDir dans la section DestinationDirs du fichier INF spécifie le répertoire de destination pour tout fichier unique spécifique à la classe à copier.
Pour plus d’informations, consultez la section Directive INF CopyFiles.
Remarque
Les fichiers INF fournis par le système pour les classes de configuration de périphériques 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 pendant l’installation de l’installateur de classe.
Cependant, si un {SetupClassGUID} particulier existe déjà en tant que classe installée, le code d’installation du système ignore par la suite la section ClassInstall32 de tout fichier INF qui spécifie la même valeur GUID dans sa section Version. Par conséquent, un fichier INF ne peut pas remplacer un installateur de classe existant ni modifier son comportement à partir d’une section ClassInstall32.
Pour plus d’informations, consultez la section 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 fichiers INF qui suppriment les propriétés de périphérique définies pour une classe de configuration de périphérique. Vous devez utiliser une directive INF DelProperty uniquement pour supprimer une propriété de classe de configuration de périphérique qui est nouvelle pour Windows Vista ou pour les versions ultérieures des systèmes d’exploitation Windows.
Pour les propriétés de classe de périphérique introduites plus tôt sous Windows Server 2003, Windows XP ou Windows 2000, et qui ont des valeurs d’entrée correspondantes dans le registre, vous devez continuer à utiliser des directives INF DelReg pour supprimer la propriété de classe de configuration de périphérique. Ces directives 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 la section 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 des fichiers précédemment installés, pertinents pour la classe, sur la destination sont spécifiés pour suppression.
Pour plus d’informations, consultez la section Directive INF DelFiles.
Renfiles=file-list-section[,file-list-section]...
Fait référence à une ou plusieurs sections nommées dans lesquelles des fichiers pertinents pour la classe, à renommer sur la destination, sont listés.
Pour plus d’informations, consultez la section Directive INF RenFiles.
BitReg=bit-registry-section[,bit-registry-section]...
Est valide dans cette section, mais presque jamais utilisée.
Pour plus d’informations, consultez la section Directive INF BitReg.
UpdateInis=update-ini-section[,update-ini-section]...
Est valide dans cette section, mais presque jamais utilisée.
Pour plus d’informations, consultez la section Directive INF UpdateInis.
UpdateIniFields=update-inifields-section[,update-inifields-section]...
Est valide dans cette section, mais presque jamais utilisée.
Pour plus d’informations, consultez la section Directive INF UpdateIniFields.
Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Est valide dans cette section, mais presque jamais utilisée.
Pour plus d’informations, consultez la section Directive INF UpdateIniFields.
Notes
Vous ne devez inclure une section ClassInstall32 dans un fichier INF de périphérique que pour installer une nouvelle classe de configuration de périphérique personnalisée. Les fichiers INF pour les périphériques dans une classe installée, qu’il s’agisse d’une classe de configuration de périphérique fournie par le système ou d’une classe personnalisée, ne doivent pas inclure une section ClassInstall32. Comme le système ne traite une section ClassInstall32 que 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-installateur de classe ou un pilote de filtre de classe pour une classe déjà installée. Pour des informations sur l’installation de co-installateurs et de pilotes de filtre, veuillez consulter les sections Rédaction d’un co-installateur et Installation d’un pilote de filtre.
Généralement, une section ClassInstall32 contient 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, le chemin de l’installateur de classe, une icône de classe, un fournisseur de page de propriétés, etc.
À l’exception des directives AddReg et CopyFiles, les autres directives mentionnées ici sont rarement utilisées dans une section ClassInstall32.
Pour prendre en charge une distribution multiplateforme de fichiers de pilotes, construisez des sections spécifiques à la plateforme ClassInstall32. Par exemple, toutes les fonctions de SetupAPI du système qui traitent une section ClassInstall32 rechercheront d’abord une section ClassInstall32.ntx86 sur une plateforme x86 et ne consulteront une section ClassInstall32 non décorée que s’ils ne trouvent pas de section ClassInstall32.ntx86. Pour plus d’informations sur l’utilisation des extensions définies par le système .nt, .ntx86, .ntia64, .ntamd64, .ntarm et .ntarm64, veuillez consulter la section Création de fichiers INF pour plusieurs plateformes et systèmes d’exploitation.
Remarque
Le nom de la section ClassInstall32 est également utilisé pour les installations sur des plateformes 64 bits.
À partir de Windows 2000, chaque périphérique installé est associé à une classe de configuration de périphérique. Si le fichier INF d’un périphérique à installer n’est pas associé à un nouvel installateur de classe de périphérique, ou si sa spécification ClassGUID= dans la section Version ne correspond pas à un GUID de classe de configuration défini par le système, ce périphérique est associé à la classe de configuration de périphérique nommée « Inconnu ».
Le fichier INF de tout installateur de classe de périphérique 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 de périphérique. Le code d’installation crée automatiquement une clé SetupClassGUID à l’endroit approprié dans le registre à partir de la valeur fournie pour l’entrée ClassGUID= dans la section Version du fichier INF lors de l’installation du premier périphérique de cette (nouvelle) classe de configuration.
Le fichier INF peut utiliser les sections d’ajout de registre référencées dans sa section ClassInstall32 pour spécifier un fournisseur de page de propriétés et exercer un contrôle sur la manière dont sa classe de périphériques est gérée dans l’interface utilisateur.
Une telle section d’ajout de registre spécifique à une classe a 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 installateur à l’utilisateur.
- Si la valeur de l’icône est positive, elle représente un identifiant de ressource pour une ressource. La ressource est extraite de la DLL de l’installateur de classe, si la clé Installer32 est spécifiée, ou de la DLL de page de propriétés, si la clé EnumPropPages32 est spécifiée. La valeur « 0 » représente la première icône dans la DLL. La valeur « 1 » est réservée.
- Si la valeur de l’icône est négative, la valeur absolue est l’identifiant de ressource de l’icône dans SetupApi.DLL.
Définir les entrées de valeur booléennes prédéfinies SilentInstall, NoDisplayClass et NoInstallClass dans une clé de registre spécifique à une classe a les effets suivants :
La définition de SilentInstall ordonne aux installateurs de ne pas envoyer de messages contextuels à l’utilisateur nécessitant une réponse lors de l’installation de périphériques de cette classe, que ce soit spécifié dans les sections DDInstall du fichier INF de l’installateur de classe ou dans des fichiers INF séparés pour les périphériques installés par la suite qui se déclarent de cette classe en définissant la même spécification ClassGuid={ClassGUID} dans leurs sections Version respectives. Par exemple, les installateurs de classe système des périphériques CD-ROM et des périphériques de disque, ainsi que l’installateur de classe de port parallèle du système, définissent SilentInstall dans leurs clés de registre respectives.
Si un installateur spécifique à une classe nécessite que l’ordinateur soit redémarré pour tout périphérique qu’il installe, la section d’ajout de registre spécifique à la classe dans son fichier 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 périphériques de cette classe par le Gestionnaire de périphériques. Par exemple, les installateurs de classe système pour les imprimantes et pour les pilotes réseau (y compris les clients, services et protocoles) définissent NoDisplayClass dans leurs clés de registre respectives.
La définition de NoInstallClass indique qu’aucun périphérique de ce type ne nécessitera jamais d’installation manuelle par un utilisateur final. Par exemple, les installateurs de classe système pour les périphériques 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 le DeviceType, les Caractéristiques du périphérique et la Sécurité des périphériques de sa classe de configuration. Pour plus d’informations, consultez la section Directive INF AddReg.
Exemples
Cet exemple montre la section ClassInstall32, ainsi que la section nommée à laquelle elle fait 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 page de propriétés spécifique à la classe. Ce fichier 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"