Section INF Strings

Un fichier INF doit avoir au moins une section Strings pour définir chaque %strkey% jeton 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 composé de lettres, de chiffres et/ou d’autres caractères explicitement visibles. Un caractère % dans un tel jeton strkey doit être exprimé en tant que %%.

certaines chaînes | « some string »
Spécifie une chaîne, éventuellement délimitée à l’aide de guillemets doubles ("), qui contient des lettres, des chiffres, une ponctuation, et peut-être même 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 (;), saut de ligne, retour ou tout caractère de contrôle invisible, et il ne peut pas avoir une barre oblique inverse () comme caractère final.

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

« chaîne multiligne très longue » |

« string-with-semi-virgule » |

«chaîne-end-in-backslash» |

« "double-quoted-string-value" »
La valeur spécifiée pour un jeton de %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 possède un espace blanc de début ou de fin qui doit être conservé dans le cadre de sa valeur, cette chaîne doit être placée entre guillemets doubles pour empêcher l’abandon des espaces blancs de début et/ou de fin par l’analyseur INF.

  • Si une chaîne longue peut contenir un flux de lignes interne ou des caractères de retour en raison de l’encapsulation 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 initial ou du caractère de retour.

  • 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 mentionné dans les règles générales de syntaxe 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 chaîne d’être concaténée avec l’entrée suivante. (Comme mentionné dans les règles de syntaxe générales pour les fichiers INF, le caractère inverse () est utilisé comme continuateur de ligne dans les fichiers INF.)

  • Comme une spécification de chaîne non mise en guillemets, une telle « chaîne entre guillemets » ne peut pas contenir de guillemets doubles internes. Toutefois, il peut être spécifié en tant que valeur de chaîne explicitement entre guillemets doubles à 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 englobants pour toute « chaîne entre guillemets » dans cette section, mais condense également chaque paire séquentielle suivante de guillemets doubles en un seul caractère de guillemets doubles.

    Par exemple, « une chaîne » » devient également « une chaîne » lorsqu’elle est analysée.

Pour résumer, toute chaîne doit être placée entre guillemets doubles (") si l’une des valeurs suivantes est vraie :

  • La chaîne contient un espace blanc de début ou de fin.
  • La chaîne est si longue qu’elle est encapsulé.
  • La chaîne contient un point-virgule ou un caractère de barre oblique inverse finale.
  • La chaîne elle-même est une chaîne entre guillemets.

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

Remarks

Étant donné que l’analyseur INF système délimite la paire la plus externe de guillemets doubles à partir de n’importe quelle «chaîne entre guillemets » définissant un jeton %strkey%, la plupart des fichiers INF système définissent toutes les %jetons strkey% comme «chaîne entre guillemets » 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 fichier INF international unique, 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 langage principal et les 6 bits suivants contiennent l’ID de sous-langage, 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 principal de LANG_GERMAN (07) avec un ID de sous-langue de SUBLANG_GERMAN (01) tel que 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 Chaînes , ainsi qu’une seule chaîne.Section LanguageID pour chaque valeur LanguageID .

Windows sélectionne une section Chaînes unique utilisée pour traduire tous les jetons %strkey% pour l’installation. Selon les paramètres régionaux actuels d’un ordinateur particulier, Windows sélectionne une section Chaînes de la façon suivante :

  1. Windows recherche d’abord le . Valeurs LanguageID dans l’INF qui correspondent aux paramètres régionaux actuels affectés à l’ordinateur. Si une correspondance exacte est trouvée, Windows utilise ces chaînes.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.* sections, même des constantes numériques/fixes qui n’ont pas besoin d’être localisées.

  2. Sinon, Windows recherche ensuite une correspondance avec 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 toute SUBLANG_XXX valide pour la même famille LANG_XXX. Si une correspondance partielle est trouvée, utilisez ces chaînes.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 %jetons de % strkey définis dans l’INF.

Par convention, et pour des raisons pratiques dans la création d’un ensemble de fichiers INF pour le marché international, les sections Strings sont les dernières dans tous les fichiers INF système. L’utilisation de %strkey% jetons pour toutes les valeurs de chaîne visibles par l’utilisateur dans un inf, et les placer dans des sections Chaînes par paramètres régionaux, 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 Chaînes soient les dernières sections de chaque fichier INF, toutes les %strkey spécifiées% jeton définis dans une section Strings peuvent être utilisées à plusieurs reprises dans l’INF, en particulier, où que la valeur traduite de ce jeton soit requise. Les fonctions SetupAPI développent chaque %jeton strkey% à la chaîne spécifiée, puis utilisent cette valeur développée pour un traitement INF supplémentaire.

L’utilisation de %jetons de% 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 toute manière pratique pour l’enregistreur INF, tant que chaque jeton est 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 comme substitut de chaque valeur GUID.

Si vous spécifiez un ensemble de %valeurs strkey% = « {GUID} » dans la section Chaînes du fichier INF, vous devez taper chaque valeur GUID explicite une seule fois. Cela peut vous aider à fournir une documentation INF interne plus lisible qu’à l’aide de 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 Chaînes pour définir toutes les %strkey% jetons référencés dans cet INF.

Dans une section Chaînes INF, 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.

Examples

L’exemple suivant montre un fragment d’une section Strings à partir 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