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 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 de 32768 à 65534 ou 65536 et ultérieures, utilisez la fonction SetupSetDirectoryId (décrite dans la documentation du Kit de développement logiciel (SDK) Microsoft Windows).

Sachez qu’un dirid avec une valeur de 65535 est considéré comme synonyme d’un dirid avec 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 (section INF DestinationDirs, par exemple), exprimez cette valeur en tant que 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 une partie ou tout ce chemin d’accès. Cette substitution a la forme suivante :

    %dirid%

    Ce formulaire se compose d’un caractère de pourcentage (%), 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 ou des répertoires supplémentaires suivants 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 indiqué dans l’exemple précédent devient c:\windows\system32\drivers\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 n’importe où où une chaîne est attendue, à l’exception de la section de chaînes INF 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 sur une chaîne. Dans le deuxième exemple, l’enregistreur INF semble destiné à définir la valeur de l’entrée ServiceBinary sur un fichier du 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 couramment spécifiées par les fichiers INF d’appareils et les fichiers INF de pilotes sont répertoriées en haut du tableau.

Dans le cadre des exigences d'isolation de packages de pilotes, un pilote doit être exécuté à partir du magasin de pilotes et utiliser DIRID 13 pour spécifier l’emplacement des fichiers de package de pilotes lors de l’installation. À compter de Windows 11, version 24H2, certains des dirids couramment utilisés ont été déconseillés lors de l’envoi de votre INF pour une signature WHQL. Pour plus d'informations, voir InfVerif /h.

Valeur Répertoire de destination Version déconseillée

01

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

24H2 de Windows 11

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 à %SystemRoot%\system32\drivers 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 d’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 fichier INF

24H2 de Windows 11

18

Répertoire d’aide

24H2 de Windows 11

20

Répertoire de polices

24H2 de Windows 11

21

Répertoire des visionneuses

24H2 de Windows 11

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 sont installés les fichiers Windows. Par exemple, si dirid 10 est «  C:\winnt », alors dirid 24 est « C:\ ».

24H2 de Windows 11

25

Répertoire partagé

24H2 de Windows 11

30

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

24H2 de Windows 11

50

Répertoire système

Cela équivaut à %SystemRoot%\system.

24H2 de Windows 11

51

Répertoire Spool (non utilisé pour l’installation des pilotes d’imprimante − voir Dirids d'imprimante)

52

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

53

Répertoire du profil de l'utilisateur.

24H2 de Windows 11

54

Répertoire où se trouvent Ntldr.exe et Osloader.exe

24H2 de Windows 11

55

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

-1

Chemin absolu

24H2 de Windows 11

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

Valeur Dossier spécial Shell Version déconseillée

16406

Tous les utilisateurs\Menu Démarrer

24H2 de Windows 11

16407

Tous les utilisateurs\Menu Démarrer\Programmes

24H2 de Windows 11

16408

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

24H2 de Windows 11

16409

Tous les utilisateurs\Bureau

24H2 de Windows 11

16415

Tous les utilisateurs\Favoris

24H2 de Windows 11

16419

Tous les utilisateurs\Données d’application

24H2 de Windows 11

16422

Program Files

16425

%SystemRoot%\SysWOW64

16426

%ProgramFiles(x86)%

16427

Program Files\Common

16428

%ProgramFiles(x86)%\Common

16429

Tous les utilisateurs\Modèles

24H2 de Windows 11

16430

Tous les utilisateurs\Documents

24H2 de Windows 11

Outre les valeurs de cette table définies dans Setupapi.h, vous pouvez utiliser l’une des valeurs CSIDL_Xxx définies 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 SDK Windows.