Share via


Utilisation de Dirids

La plupart des répertoires qui apparaissent dans les fichiers INF peuvent être exprimés à l’aide d’identificateurs de répertoire (dirids), qui sont des nombres qui identifient des répertoires spécifiques. Les applications peuvent utiliser, mais ne peuvent pas réaffecter les répertoires définis par le système qui sont associés à des dirids dont les valeurs sont comprises entre -1 et 32767.

Pour créer des dirids avec des valeurs définies par l’utilisateur comprises entre 32768 et 65534 ou 65536 et plus, utilisez la fonction SetupSetDirectoryId (décrite dans la documentation Microsoft Windows SDK).

Sachez qu’un dirid d’une valeur de 65535 est considéré comme synonyme d’un dirid d’une valeur de -1, bien que ce dernier (dirid -1) soit préféré.

Si vous envisagez d’utiliser des dirids dans votre fichier INF, tenez compte des deux instructions suivantes :

  1. Lorsque la syntaxe d’une entrée de fichier INF spécifie explicitement une valeur dirid ( la section DestinationDirs INF, par exemple), exprimez cette valeur sous forme de nombre.

    L’exemple suivant illustre cette syntaxe :

    [DestinationDirs]
    DefaultDestDir = 11  ;  \system32 directory on Windows 2000 and later versions
    
  2. Lorsque la syntaxe d’une entrée de fichier INF spécifie un chemin d’accès de fichier, vous pouvez utiliser une substitution de chaîne fournie par le système pour représenter tout ou partie de ce chemin. Cette substitution se présente sous la forme suivante :

    %dirid%

    Ce formulaire se compose d’un pourcentage (%) caractère, suivi du dirid pour le répertoire que vous souhaitez spécifier, suivi d’un autre caractère de pourcentage (%) . Un caractère de barre oblique inverse () de fin sépare cette expression d’un nom de fichier suivant ou de répertoires supplémentaires dans le chemin d’accès.

    L’exemple suivant illustre cette syntaxe :

    [aic78xx_Service_Inst]
    ServiceBinary = %12%\aic78xx.sys
    

    Lorsqu’il est entièrement développé, le chemin d’accès indiqué dans l’exemple précédent devientles pilotes\c:\windows\system32\aic78xx.sys (en supposant que Windows a été installé dans le répertoire c:\windows). N’oubliez pas que la substitution de chaîne, ou formulaire %dirid%, peut être utilisée partout où une chaîne est attendue, à l’exception de la section Inf Strings du fichier INF.

    Les deux exemples suivants montrent comment la substitution de chaîne ne doit pas être utilisée.

    [DestinationDirs]
    DefaultDestDir = %11%  ; Error! - number expected
    
    [aic78xx_Service_Inst]
    ServiceBinary = 12\aic78xx.sys  ; Error! - unknown directory name
    

    Dans le premier exemple, la syntaxe de l’entrée DefaultDestDir nécessite que sa valeur soit un nombre. Toutefois, l’expression %11 % se développe en chaîne. Dans le deuxième exemple, l’enregistreur INF avait apparemment l’intention de définir la valeur de l’entrée ServiceBinary sur un fichier dans le répertoire qui contient des pilotes (voir le tableau suivant pour plus d’informations). L’erreur se produit parce que Windows recherche le fichier spécifié dans un répertoire nommé « 12 », qui n’existe probablement pas sur l’ordinateur.

Le tableau suivant présente plusieurs dirids couramment utilisés et les répertoires qu’ils représentent. Les valeurs les plus fréquemment spécifiées par les fichiers INF d’appareil et les fichiers INF du pilote sont répertoriées en haut du tableau.

Valeur Répertoire de destination

01

SourceDrive:\pathname (répertoire à partir duquel le fichier INF a été installé)

10

Répertoire Windows.

Cela équivaut à %SystemRoot%.

11

Répertoire système.

Cela équivaut à %SystemRoot%\system32 pour Windows 2000 et versions ultérieures de Windows..

12

Répertoire des pilotes.

Cela équivaut auxpilotes%SystemRoot%\system32\ pour Windows 2000 et versions ultérieures de Windows.

13

Répertoire du magasin de pilotes du package de pilotes.

Pour Windows 8.1 et versions ultérieures de Windows, spécifie le chemin d’accès au répertoire Du magasin de pilotes où le package de pilotes a été importé.

N’utilisez pas DelFiles sur un fichier pour lequel DestinationDirs inclut dirid 13.

Le sous-répertoire facultatif de la section SourceDiskFiles pour un fichier doit correspondre au sous-répertoire de la section DestinationDirs pour l’entrée qui s’applique à ce fichier.

N’utilisez pas CopyFiles pour renommer un fichier pour lequel DestinationDirs inclut dirid 13.

Pour plus d’informations sur l’utilisation de dirid 13, consultez Exécuter à partir du magasin de pilotes.

17

Répertoire de fichiers INF

18

Répertoire d’aide

20

Répertoire polices

21

Répertoire des visionneuses

23

Répertoire de couleurs (ICM) (non utilisé pour l’installation des pilotes d’imprimante)

24

Répertoire racine du disque système.

Il s’agit du répertoire racine du disque sur lequel les fichiers Windows sont installés. Par exemple, si dirid 10 est « C:\winnt », dirid 24 est « C:\ ».

25

Répertoire partagé

30

Répertoire racine du disque de démarrage, également appelé « partition système ARC ». (Il peut s’agir ou non du même répertoire que celui représenté par dirid 24.)

50

Répertoire système

Cela équivaut à %SystemRoot%\system.

51

Répertoire Spool (non utilisé pour l’installation des pilotes d’imprimante ; consultez Dirids d’imprimante)

52

Répertoire des pilotes de pool (non utilisé pour l’installation des pilotes d’imprimante)

53

Répertoire des profils utilisateur

54

Répertoire où se trouvent lesNtldr.exe et lesOsloader.exe

55

Répertoire des processeurs d’impression (non utilisé pour l’installation des pilotes d’imprimante)

-1

Chemin absolu

Les valeurs dirid comprises entre 16384 et 32767 sont réservées aux dossiers d’interpréteur de commandes spéciaux. Le tableau suivant montre les valeurs dirid pour ces dossiers.

Valeur Dossier spécial de l’interpréteur de commandes

16406

Tous les utilisateurs\Menu Démarrer

16407

Tous les utilisateurs\Menu Démarrer\Programmes

16408

Tous les utilisateurs\Menu Démarrer\Programmes\Démarrage

16409

Tous les utilisateurs\Bureau

16415

Tous les utilisateurs\Favoris

16419

Tous les utilisateurs\Données d’application

16422

Program Files

16425

%SystemRoot%\SysWOW64

16426

%ProgramFiles(x86)%

16427

Program Files\Common

16428

%ProgramFiles(x86)%\Common

16429

Tous les utilisateurs\modèles

16430

Tous les utilisateurs\documents

Outre les valeurs de cette table définies dans Setupapi.h, vous pouvez utiliser n’importe quelle valeur CSIDL_Xxx définie dans Shlobj.h. Pour définir une valeur dirid pour un dossier non répertorié dans cette table, ajoutez 16384 (0x4000) à la valeur CSIDL_Xxx . Pour plus d’informations sur les valeurs CSIDL_Xxx , consultez la documentation du Kit de développement logiciel (SDK) Windows.