Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment créer un fichier INF pour un pilote de système de fichiers.
Pour plus d’informations sur l’installation et la désinstallation d’un pilote de système de fichiers à l’aide d’un fichier INF, suivez les instructions fournies dans les articles suivants pour les pilotes de filtre de système de fichiers hérités :
Utilisation d’un fichier INF pour installer un pilote de filtre de système de fichiers. Vous pouvez utiliser le fichier INF seul, ou avec un fichier batch ou une application de configuration en mode utilisateur.
Utilisation d’un fichier INF pour désinstaller un pilote de filtre de système de fichiers pour obtenir les informations de désinstallation.
À propos des fichiers INF du système de fichiers
Les services d’installation et d’installation d’appareil Windows, appelés collectivement SetupAPI, fournissent les fonctions qui contrôlent l’installation de Windows et l’installation du pilote. Les fichiers INF contrôlent le processus d’installation. Pour plus d’informations sur les fichiers INF, consultez Création d’un fichier INF et des sections et directives de fichier INF.
Le fichier INF d’un pilote de système de fichiers fournit des instructions que SetupAPI utilise pour l’installer. Le fichier INF spécifie les fichiers qui doivent être présents pour que votre pilote s’exécute et les répertoires source et de destination pour les fichiers du pilote. Un fichier INF contient également des informations de configuration de pilote que SetupAPI stocke dans le Registre, telles que le type de démarrage et le groupe d’ordre de chargement du pilote.
Vous pouvez créer un fichier INF unique pour installer votre pilote sur plusieurs versions du système d’exploitation Windows. Pour plus d’informations sur la création d’un tel fichier INF, consultez Création de fichiers INF pour plusieurs plateformes et systèmes d’exploitation et création de fichiers INF internationaux.
À compter des versions 64 bits de Windows Vista, tous les composants en mode noyau doivent être connectés pour charger et exécuter. Cette exigence inclut les pilotes non PnP (Plug-and-Play), tels que les pilotes de système de fichiers (système de fichiers, filtre hérité et pilotes minifilter). Pour obtenir des informations générales sur la signature des pilotes, consultez Signature de pilote.
Pour ces versions du système d’exploitation Windows, les informations suivantes sont pertinentes pour les pilotes de système de fichiers.
Les fichiers INF pour les pilotes non PnP, y compris les pilotes de système de fichiers, ne sont pas tenus de contenir les rubriques [Fabricant] ou [Modèles].
L’outil en ligne de commande SignTool, situé dans le répertoire \bin\xx.x.xxxxx.x\SelfSign du répertoire d’installation WDK, peut être utilisé pour intégrer directement la signature dans un fichier exécutable SYS du pilote. Pour des raisons de performances, les pilotes de démarrage doivent contenir une signature incorporée.
Étant donné un fichier INF, l’outil en ligne de commande Inf2Cat peut être utilisé pour créer un fichier de catalogue (.cat) pour un package de pilotes.
Avec des privilèges d’administrateur, un pilote non signé peut toujours être installé sur des systèmes x64 à partir de Windows Vista. Toutefois, le pilote ne parvient pas à charger (et donc à s’exécuter), car il n’est pas signé.
Pour plus d’informations sur le processus de signature de conduite, notamment le processus de signature de conduite pour les versions 64 bits de Windows Vista et ultérieures, consultez le document Word de signature de codeKernel-Mode .
Tous les composants en mode noyau, y compris les outils de développement en mode noyau personnalisés, doivent être signés. Pour plus d’informations, consultez Présentation de Test-Signing).
Les fichiers INF ne peuvent pas être utilisés pour lire des informations à partir du Registre ou lancer une application en mode utilisateur.
Sections d’un fichier INF de pilote de système de fichiers
Pour construire votre propre fichier INF du pilote de système de fichiers, utilisez les informations suivantes comme guide. Vous pouvez utiliser l’outil InfVerif pour vérifier la syntaxe de votre fichier INF.
Un fichier INF pour un pilote de système de fichiers contient généralement les sections suivantes.
Section Version (obligatoire)
La section Version spécifie les informations de version du pilote, comme illustré dans l’exemple suivant.
[Version]
Signature = "$WINDOWS NT$"
Provider = %Msft%
DriverVer = 08/28/2000,1.0.0.1
CatalogFile =
Le tableau suivant présente les valeurs que les pilotes de filtre du système de fichiers doivent spécifier dans la section Version .
Entrée | Valeur |
---|---|
signature | « $WINDOWS NT$ » |
Fournisseur | Dans votre propre fichier INF, vous devez spécifier un fournisseur autre que Microsoft. |
DriverVer | Voir la directive INF DriverVer |
CatalogFile | Voir Utilisation d’Inf2Cat pour créer un fichier catalogue |
Section DestinationDirs (facultative mais recommandée)
La section DestinationDirs spécifie les répertoires dans lesquels les fichiers de pilote du système de fichiers doivent être copiés.
Dans cette section et dans la section ServiceInstall , vous pouvez spécifier des répertoires système connus à l’aide de valeurs numériques définies par le système. Pour obtenir la liste de ces valeurs, consultez la section INF DestinationDirs. Dans l’exemple suivant, la valeur « 12 » fait référence au répertoire Drivers (%windir%\system32\drivers).
[DestinationDirs]
DefaultDestDir = 12
ExampleFileSystem.DriverFiles = 12
Section SourceDisksNames (obligatoire)
La section SourceDisksNames spécifie le support de distribution à utiliser.
Dans l’exemple suivant, la section SourceDisksNames répertorie un support de distribution unique pour le pilote du système de fichiers. L’identificateur unique du média est 1. Le nom du média est spécifié par le jeton %Disk1%, qui est défini dans la section Chaînes du fichier INF.
[SourceDisksNames]
1 = %Disk1%
SourceDisksFiles - Section obligatoire
La section SourceDisksFiles spécifie l’emplacement et les noms des fichiers à copier.
Dans l’exemple suivant, la section SourceDisksFiles répertorie le fichier à copier pour le pilote du système de fichiers et spécifie que les fichiers sont disponibles sur le média dont l’identificateur unique est 1 (cet identificateur est défini dans la section SourceDisksNames du fichier INF.)
[SourceDisksFiles]
examplefilesystem.sys = 1
DefaultInstall Section (obligatoire)
Dans la section DefaultInstall , une directive CopyFiles copie les fichiers de pilote du pilote du système de fichiers vers la destination spécifiée dans la section DestinationDirs .
La directive CopyFiles ne doit pas faire référence au fichier catalogue ou au fichier INF lui-même ; SetupAPI copie automatiquement ces fichiers.
Vous pouvez créer un fichier INF unique pour installer votre pilote sur plusieurs versions du système d’exploitation Windows. Ce type de fichier INF est créé en créant plusieurs sections DefaultInstall, DefaultInstall.Services, DefaultUninstall et DefaultUninstall.Services pour chaque version du système d’exploitation. Chaque section est étiquetée avec une décoration (par exemple, .ntx86, .ntia64 ou .nt) qui spécifie la version du système d’exploitation à laquelle elle s’applique. Pour plus d’informations sur la création de ce type de fichier INF, consultez Création de fichiers INF pour plusieurs plateformes et systèmes d’exploitation.
Dans l’exemple suivant, la directive CopyFiles copie les fichiers répertoriés dans la section ExampleFileSystem.DriverFiles du fichier INF.
[DefaultInstall]
OptionDesc = %ServiceDesc%
CopyFiles = ExampleFileSystem.DriverFiles
[ExampleFileSystem.DriverFiles]
examplefilesystem.sys
Section des services DefaultInstall (requise)
La section DefaultInstall.Services contient une directive AddService qui contrôle comment et quand les services d’un pilote particulier sont chargés.
Dans l’exemple de code suivant, la directive AddService ajoute le service de système de fichiers au système d’exploitation. Le jeton %ServiceName% contient la chaîne de nom de service, qui est définie dans la section Chaînes du fichier INF. ExampleFileSystem.Service est le nom de la section ServiceInstall du pilote de système de fichiers.
[DefaultInstall.Services]
AddService = %ServiceName%,,ExampleFileSystem.Service
Section ServiceInstall (obligatoire)
La section ServiceInstall ajoute des sous-clés ou des noms de valeurs au Registre et définit des valeurs. Le nom de la section ServiceInstall doit apparaître dans une directive AddService dans la section DefaultInstall.Services.
L’exemple suivant montre la section ServiceInstall pour le pilote du système de fichiers.
[ExampleFileSystem.Service]
DisplayName = %ServiceName%
Description = %ServiceDesc%
ServiceBinary = %12%\examplefilesystem.sys
ServiceType = 2 ; SERVICE_FILE_SYSTEM_DRIVER
StartType = 1 ; SERVICE_SYSTEM_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
LoadOrderGroup = "File System"
AddReg = ExampleFileSystem.AddRegistry
L’entrée DisplayName spécifie le nom du service. Dans l’exemple précédent, la chaîne de nom de service est spécifiée par le jeton %ServiceName%, qui est défini dans la section Chaînes du fichier INF.
L’entrée Description spécifie une chaîne qui décrit le service. Dans l’exemple précédent, cette chaîne est spécifiée par le jeton %ServiceDesc%, qui est défini dans la section Chaînes du fichier INF.
L’entrée ServiceBinary spécifie le chemin d’accès au fichier exécutable du service. Dans l’exemple précédent, la valeur 12 fait référence au répertoire Drivers (%windir%\system32\drivers).
L’entrée ServiceType spécifie le type de service. Le tableau suivant répertorie les valeurs possibles pour ServiceType et leurs types de service correspondants.
Valeur | Descriptif |
---|---|
0x00000001 | SERVICE_KERNEL_DRIVER (service de pilote de périphérique) |
0x00000002 | SERVICE_FILE_SYSTEM_DRIVER (service de pilote de système de fichiers ou de filtre de système de fichiers) |
0x00000010 | SERVICE_WIN32_OWN_PROCESS (service Microsoft Win32 qui s’exécute dans son propre processus) |
0x00000020 | SERVICE_WIN32_SHARE_PROCESS (service Win32 qui partage un processus) |
L’entrée ServiceType doit toujours être définie sur SERVICE_FILE_SYSTEM_DRIVER pour un pilote de système de fichiers.
L’entrée StartType spécifie quand démarrer le service. Le tableau suivant répertorie les valeurs possibles pour StartType et leurs types de démarrage correspondants.
Valeur | Descriptif |
---|---|
0x00000000 | SERVICE_DE_DÉMARRAGE |
0x00000001 | DÉMARRAGE_SYSTÈME_SERVICE |
0x00000002 | SERVICE_DÉMARRAGE_AUTOMATIQUE |
0x00000003 | SERVICE_DEMAND_START |
0x00000004 | SERVICE DÉSACTIVÉ |
Pour obtenir des descriptions détaillées de ces types de démarrage pour déterminer celui qui convient à votre pilote de système de fichiers, consultez Ce qui détermine quand un pilote est chargé.
À compter des systèmes Windows Vista x64, le fichier image binaire d’un pilote de démarrage (un pilote qui a un type de démarrage de SERVICE_BOOT_START) doit contenir une signature incorporée. Cette exigence garantit des performances de démarrage système optimales. Pour plus d’informations, consultez le document Word Kernel-Mode Code Signing Walkthrough.
Pour plus d’informations sur la façon dont les entrées StartType et LoadOrderGroup déterminent quand le pilote est chargé, consultez Ce qui détermine quand un pilote est chargé.
L’entrée ErrorControl spécifie l’action à entreprendre si le service ne parvient pas à démarrer au démarrage du système. Le tableau suivant répertorie les valeurs possibles pour ErrorControl et leurs valeurs de contrôle d’erreur correspondantes.
Valeur | Descriptif |
---|---|
0x00000000 | SERVICE_ERROR_IGNORE (journaliser l’erreur et continuer le démarrage du système.) |
0x00000001 | SERVICE_ERROR_NORMAL (Journaliser l’erreur, afficher un message à l’utilisateur et continuer le démarrage du système.) |
0x00000002 | SERVICE_ERROR_SEVERE (basculez vers le jeu de contrôles LastKnownGood du registre et continuez le démarrage du système.) |
0x00000003 | SERVICE_ERROR_CRITICAL (si le démarrage du système n’utilise pas le jeu de contrôle LastKnownGood du registre, basculez vers LastKnownGood et réessayez. Si le démarrage échoue toujours, exécutez une routine de vérification des bogues. Seuls les pilotes nécessaires au démarrage du système doivent spécifier cette valeur dans leurs fichiers INF.) |
L’entrée LoadOrderGroup doit toujours être définie sur « Système de fichiers » pour un pilote de système de fichiers. Ce paramètre est différent de ce qui est spécifié pour un pilote de filtre de système de fichiers ou un pilote minifilter du système de fichiers où l’entrée LoadOrderGroup est définie sur l’un des groupes d’ordre de chargement du filtre du système de fichiers. Pour plus d'informations sur les groupes d'ordre de chargement, consultez Groupes d'ordre de chargement pour les pilotes pour les filtres de système de fichiers et Groupes d'ordre de chargement et altitudes pour les pilotes Minifilter.
La directive AddReg fait référence à une ou plusieurs sections AddRegistry définies par l’enregistreur INF qui contiennent toutes les informations à stocker dans le Registre pour le service nouvellement installé.
Si le fichier INF sera également utilisé pour mettre à niveau le pilote après l’installation initiale, les entrées contenues dans la section AddRegistry doivent spécifier l’indicateur 0x00000002 (FLG_ADDREG_NOCLOBBER). La spécification de cet indicateur conserve les entrées de Registre dans HKLM\CurrentControlSet\Services lorsque les fichiers suivants sont installés. Par exemple:
[ExampleFileSystem.AddRegistry]
HKR,Parameters,ExampleParameter,0x00010003,1
DefaultUninstall Section (facultatif)
La section DefaultUninstall est facultative, mais recommandée si votre pilote peut être désinstallé. Il contient des directives DelFiles et DelReg pour supprimer des fichiers et des entrées de Registre.
Dans l’exemple suivant, la directive DelFiles supprime les fichiers répertoriés dans la section ExampleFileSystem.DriverFiles du fichier INF.
[DefaultUninstall]
DelFiles = ExampleFileSystem.DriverFiles
DelReg = ExampleFileSystem.DelRegistry
La directive DelReg fait référence à une ou plusieurs sections DelRegistry définies par l’enregistreur INF qui contiennent toutes les informations à supprimer du Registre pour le service en cours de désinstallation.
Section DefaultUninstall.Services (facultatif)
La section DefaultUninstall.Services est facultative, mais recommandée si votre pilote peut être désinstallé. Il contient des directives DelService pour supprimer les services du pilote de système de fichiers.
Dans l’exemple suivant, la directive DelService supprime le service du pilote du système de fichiers du système d’exploitation.
[DefaultUninstall.Services]
DelService = %ServiceName%,0x200
La directive DelService doit toujours spécifier l’indicateur 0x200 (SPSVCINST_STOPSERVICE) pour arrêter le service avant la suppression du service.
Il existe certaines classes de produits de système de fichiers qui ne peuvent pas être complètement désinstallés. Dans ce cas, vous pouvez simplement désinstaller les composants du produit qui peuvent être désinstallés et laisser les composants qui ne peuvent pas être désinstallés. Par exemple, un tel produit est la fonctionnalité du Microsoft Single Instance Store (SIS).
Section des cordes (obligatoire)
La section Chaînes définit chaque jeton %strkey% utilisé dans le fichier INF.
Par exemple, le pilote du système de fichiers définit les chaînes suivantes dans son fichier INF.
[Strings]
Msft = "Microsoft Corporation"
ServiceDesc = "Example File System Driver"
ServiceName = "ExampleFileSystem"
ParameterPath = "SYSTEM\CurrentControlSet\Services\ExampleFileSystem\Parameters"
Disk1 = "Example File System Driver CD"
Vous pouvez créer un fichier INF international unique en créant d’autres chaînes spécifiques aux paramètres régionaux. Sections LanguageID dans le fichier INF. Pour plus d’informations sur les fichiers INF internationaux, consultez Création de fichiers INF internationaux.