Section Chaînes INF

Un fichier INF doit avoir au moins une section Strings pour définir chaque jeton %strkey% spécifié ailleurs dans cet INF.

[Strings] | 
[Strings.LanguageID] ...
 
strkey1 = ["]some string["]
strkey2 = "    string-with-leading-or-trailing-whitespace     "  | 
          "very-long-multiline-string" | 
          "string-with-semicolon" | 
          "string-ending-in-backslash" |
          ""double-quoted-string-value""
 ...

Entrées

strkey1, strkey2, ...
Chaque clé de chaîne d’un fichier INF doit spécifier un nom unique qui se compose de lettres, de chiffres et/ou d’autres caractères visibles explicitement. Un caractère % au sein d’un jeton de strkey doit être exprimé en tant que %%.

| chaîne «une chaîne »
Spécifie une chaîne, éventuellement délimitée à l’aide de guillemets doubles (« ), qui contient des lettres, des chiffres, une ponctuation et éventuellement certains caractères implicitement visibles, en particulier des espaces internes et/ou des caractères de tabulation. Toutefois, une chaîne sans guillemets ne peut pas contenir de guillemets doubles internes (« ), point-virgule (;), flux de ligne, retour ou tout autre caractère de contrôle invisible, et elle ne peut pas avoir de barre oblique inverse () comme caractère final.

« * string-with-leading-or-trailing-whitespace* » |

«très long-multiligne-string» |

« string-with-point-pointon » |

« string-ending-in-backslash » |

« "double-quoted-string-value" »
La valeur spécifiée pour un jeton %strkey% doit être placée entre guillemets doubles (« ) s’il répond à l’un des critères suivants :

  • Si une chaîne spécifiée a des espaces blancs de début ou de fin qui doivent être conservés dans le cadre de sa valeur, cette chaîne doit être placée entre guillemets doubles pour empêcher l’abandon de ses espaces blancs de début et/ou de fin par l’analyseur INF.

  • Si une chaîne longue peut contenir un flux de ligne interne ou des caractères de retour en raison de l’encapsulage de ligne dans l’éditeur de texte, elle doit également être placée entre guillemets doubles pour empêcher la troncation de la chaîne au niveau du flux de ligne interne ou du caractère de retour initial.

  • Si une telle chaîne contient un point-virgule, elle doit être placée entre guillemets doubles pour empêcher la chaîne d’être tronquée au point-virgule. (Comme déjà mentionné dans Règles de syntaxe générales pour les fichiers INF, le caractère point-virgule commence chaque commentaire dans les fichiers INF.)

  • Si une telle chaîne se termine par une barre oblique inverse, elle doit être placée entre guillemets doubles pour empêcher la concaténée avec l’entrée suivante. (Comme déjà mentionné dans Règles de syntaxe générales pour les fichiers INF, le caractère barre oblique inverse () est utilisé comme continuateur de ligne dans les fichiers INF.)

  • Comme une spécification de chaîne non citée, une telle « chaîne entre guillemets » ne peut pas contenir de guillemets doubles internes. Toutefois, elle peut être spécifiée sous la forme d’une valeur de chaîne entre guillemets doubles explicite à l’aide d’une ou plusieurs paires supplémentaires de guillemets doubles (par exemple, « « une chaîne »).

    L’analyseur INF ignore non seulement la paire la plus externe de guillemets doubles pour n’importe quelle « chaîne entre guillemets » dans cette section, mais condense également chaque paire séquentielle de guillemets doubles en un seul caractère de guillemets doubles.

    Par exemple, « ""some string"" » devient également « some string » lors de l’analyse.

Pour résumer, toute chaîne doit être placée dans une paire de guillemets doubles (« ) si l’un des éléments suivants est vrai :

  • La chaîne contient des espaces blancs de début ou de fin.
  • La chaîne est tellement longue qu’elle est encapsulé.
  • La chaîne contient un point-virgule ou une barre oblique inverse finale.
  • La chaîne elle-même est une chaîne entre guillemets.

L’analyseur INF système ignore la paire la plus externe englobante de guillemets doubles délimitant une telle chaîne, ainsi que tous les espaces blancs de début ou de fin en dehors des séparateurs de chaîne de guillemets doubles.

Notes

Étant donné que l’analyseur INF système supprime la paire la plus externe de guillemets doubles de n’importe quelle «chaîne quoted» définissant un jeton %strkey%, de nombreux fichiers INF système définissent tous les jetons %strkey% en tant que «chaîne quoted » pour éviter la perte involontaire d’espaces blancs de début et de fin pendant l’analyse INF. L’utilisation de «chaîne entre guillemets» garantit également que les valeurs de chaîne particulièrement longues qui s’encapsulent sur les lignes ne peuvent pas être tronquées, et que les chaînes avec des barres obliques inverses de fin ne peuvent pas être concaténées à la ligne suivante dans le fichier INF.

Pour créer un seul fichier INF international, un inf peut avoir un ensemble de chaînes spécifiques aux paramètres régionaux. Sections LanguageID, comme indiqué dans l’instruction de syntaxe formelle. L’extension LanguageID est une valeur hexadécimale à 4 chiffres (sans « 0x ») qui est définie comme suit :

  • Les 10 bits inférieurs contiennent l’ID de langue principale et les 6 bits suivants contiennent l’ID de sous-langue, comme spécifié par la macro MAKELANGID définie dans Winnt.h.
  • Les ID de langue et de sous-langage doivent correspondre aux valeurs définies par le système des constantes Win32 LANG_XXX et SUBLANG_XXX définies dans Winnt.h.

Par exemple, une valeur LanguageID de 0407 représente un ID de langue primaire de LANG_GERMAN (07) avec un ID de sous-langue de SUBLANG_GERMAN (01), comme dans l’exemple suivant :

[Strings]              ; No language ID implies English
DiskName="My Excellent Software"
LocaleSubDir="English"

[Strings.0407]         ; 0407 is the language ID for German
DiskName="Meine ausgezeichnete Software"
LocaleSubDir="German"

Un fichier INF ne peut contenir qu’une seule section Strings, ainsi qu’une seule chaîne.Section LanguageID pour chaque valeur LanguageID.

Windows sélectionne une seule section Chaînes qui est utilisée pour traduire tous les jetons %strkey% pour l’installation. En fonction des paramètres régionaux actuels d’un ordinateur particulier, Windows sélectionne une section Chaînes de la manière suivante :

  1. Windows recherche d’abord le . Valeurs LanguageID dans l’INF qui correspondent aux paramètres régionaux actuels attribués à l’ordinateur. Si une correspondance exacte est trouvée, Windows utilise cette chaîne.LanguageID Section INF pour traduire tous les jetons %strkey% définis dans l’inf.

    Vous devez dupliquer tous les jetons de chaîne sur toutes les chaînes.* les sections, même les constantes numériques/fixes qui n’ont pas besoin d’être localisées.

  2. Sinon, Windows recherche ensuite une correspondance à la valeur LANG_XXX avec la valeur de SUBLANG_NEUTRAL comme SUBLANG_XXX. Si une telle correspondance est trouvée, Windows utilise cette section INF pour traduire tous les jetons %strkey% définis dans l’INF.

  3. Sinon, Windows recherche ensuite une correspondance avec la valeur LANG_XXX et tout SUBLANG_XXX valide pour la même famille LANG_XXX . Si une telle correspondance partielle est trouvée, utilisez cette valeur Strings.LanguageID Section INF pour traduire tous les jetons %strkey% définis dans l’inf.

  4. Sinon, Windows utilise la section Chaînes non décorées pour traduire tous les jetons %strkey% définis dans inf.

Par convention, et pour faciliter la création d’un ensemble de fichiers INF pour le marché international, les sections Strings sont les dernières de tous les fichiers INF système. L’utilisation de jetons %strkey% pour toutes les valeurs de chaîne visibles par l’utilisateur au sein d’un INF et leur placement dans des sections chaînes par paramètre régional simplifie la traduction de ces chaînes. Pour plus d’informations sur les fichiers INF spécifiques aux paramètres régionaux, consultez Création de fichiers INF internationaux.

Bien que les sections Strings soient les dernières sections de chaque fichier INF, tout jeton %strkey% spécifié défini dans une section Strings peut être utilisé à plusieurs reprises ailleurs dans l’INF, en particulier, partout où la valeur traduite de ce jeton est requise. Les fonctions SetupAPI développent chaque jeton %strkey% sur la chaîne spécifiée, puis utilisent cette valeur développée pour un traitement INF ultérieur.

L’utilisation de jetons %strkey% dans les fichiers INF n’est pas limitée aux valeurs de chaîne visibles par l’utilisateur. Ces jetons peuvent être utilisés de n’importe quelle manière pratique pour l’enregistreur INF, à condition que chaque jeton soit défini dans une section Chaînes . Par exemple, lorsque vous écrivez un fichier INF qui nécessite la spécification de plusieurs GUID, il peut être pratique de créer un jeton %strkey% pour chaque GUID, en utilisant un nom explicite en remplacement de chacune de ces valeurs GUID.

La spécification d’un ensemble de % valeurs strkey% = « {GUID} » dans la section Chaînes du fichier INF vous oblige à taper chaque valeur GUID explicite une seule fois. Cela peut vous aider à fournir une documentation INF interne plus lisible qu’en utilisant des valeurs GUID explicites dans le fichier INF.

Tous les jetons %strkey% doivent être définis dans le fichier INF dans lequel ils sont référencés. Par conséquent, pour tout fichier INF qui a des entrées Include et Needs , un INF inclus doit avoir sa propre section Strings pour définir tous les jetons %strkey% référencés dans cet INF.

Dans une section INF Chaînes , la longueur maximale, en caractères, d’une chaîne de substitution, y compris un caractère NULL de fin, est 4096 (Windows Vista et versions ultérieures de Windows) et 512 (Windows Server 2003, Windows XP et Windows 2000). Après la substitution de chaîne, la longueur maximale, en caractères, d’une chaîne de fichier INF est 4096, y compris un caractère NULL de fin.

Exemples

L’exemple suivant montre un fragment d’une section Strings d’un dvd.inf spécifique aux paramètres régionaux fournis par le système pour les installations dans les pays/régions anglophones.

[Strings]
Msft="Microsoft"
MfgToshiba="Toshiba"
Tosh404.DeviceDesc="Toshiba DVD decoder card"
; ... 

L’exemple suivant montre la concaténation de chaînes.

[OEM Windows System Component Verification]
OID = 1.3.6.1.4.1.311.10.3.7    ; WHQL OEM OID 
Notice = "%A% %B% %C% %D% %E%" 
[Strings]
A = "This certificate is used to sign untested drivers that have not passed the Windows Hardware Quality Labs (WHQL) testing process."
B = "This certificate and drivers signed with this certificate are intended for use in test environments only, and are not intended for use in any other context."
C = "Vendors who distribute this certificate or drivers signed with this certificate outside a test environment may be in violation of their driver signing agreement."
D = "Vendors who have their drivers signed with this certificate do so at their own risk." 
E = "In particular, Microsoft assumes no liability for any damages that may result from the distribution of this certificate or drivers signed with this certificate outside the test environment described in a vendor's driver signing agreement."

Voir aussi

DDInstall

DDInstall. CoInstallers

DDInstall. HW

DDInstall. Interfaces

DDInstall. Services

Fabricant

InterfaceInstall32

Modèles

SourceDisksNames

Version