Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En INF-fil måste ha minst ett avsnitt med strängar för att definiera varje %strkey -% token som anges någon annanstans i inf-filen.
[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""
...
Inlägg
strkey1, strkey2, ...
Varje strängnyckel i en INF-fil måste ange ett unikt namn som består av bokstäver, siffror och/eller andra explicit synliga tecken. Ett % tecken i en sådan strkey-token måste uttryckas som %%.
vissa strängar | "lite sträng"
Anger en sträng, som kan avgränsas med dubbla citattecken ("), som innehåller bokstäver, siffror, skiljetecken och eventuellt även vissa implicit synliga tecken, särskilt internt utrymme och/eller tabbtecken. En ociterad sträng får dock inte innehålla interna dubbla citattecken ("), semikolon (;), radmatning, retur eller osynliga kontrolltecken, och den kan inte ha ett omvänt snedstreck () som sitt sista tecken.
"* string-with-leading-or-trailing-whitespace* " |
"very-long-multiline-string" |
"string-ending-in-backslash" |
""double-quoted-string-value""
Värdet som anges för en %strkey -% token måste omges av dubbla citattecken (") om det uppfyller något av följande kriterier:
Om en angiven sträng har inledande eller avslutande blanksteg som måste behållas som en del av dess värde, måste strängen omges av dubbla citattecken för att förhindra att dess inledande och/eller avslutande blanksteg tas bort av INF-parsern.
Om en lång sträng kan innehålla interna radmatningstecken eller returtecken på grund av radbrytning i textredigeraren, bör den också omges av dubbla citattecken för att förhindra trunkering av strängen vid den första interna radmatningen eller returtecknet.
Om en sådan sträng innehåller ett semikolon måste den omges av dubbla citattecken för att förhindra att strängen trunkeras i semikolonet. (Som redan nämnts i Allmänna syntaxregler för INF-filer börjar semikolontecknet varje kommentar i INF-filer.)
Om en sådan sträng slutar i ett omvänt snedstreck måste den omges av dubbla citattecken för att förhindra att strängen sammanfogas med nästa post. (Som redan nämnts i Allmänna syntaxregler för INF-filer används omvänt snedstreck () som radkontinuator i INF-filer.)
Precis som en icke-citerad strängspecifikation kan en sådan "citerad sträng" inte innehålla interna dubbla citattecken. Det kan dock anges som ett explicit dubbelciterat strängvärde genom att använda ett eller flera ytterligare par med dubbla citattecken (till exempel "en sträng").
INF-parsern tar inte bara bort det yttersta paret med omslutande dubbla citattecken för alla "citerade strängar" i det här avsnittet, utan komprimerar också varje efterföljande sekventiellt par med dubbla citattecken till ett enda dubbelt citattecken.
Till exempel blir """någon sträng"" också "viss sträng" när den parsas.
För att sammanfatta måste alla strängar omges av ett par dubbla citattecken (") om något av följande är sant:
- Strängen innehåller inledande eller avslutande blanksteg.
- Strängen är så lång att den radsluts.
- Strängen innehåller ett semikolon eller ett sista omvänt snedstreck.
- Själva strängen är en citerad sträng.
Systemets INF-parser tar bort det yttre omslutande paret med dubbla citattecken som avgränsar en sådan sträng, tillsammans med eventuella inledande eller avslutande blankstegstecken utanför de dubbla citattecken strängavgränsarna.
Remarks
Eftersom systemets INF-parser tar bort det yttersta paret med omslutande dubbla citattecken från alla "citerade strängar" som definierar en %strkey -% token, definierar många av systemets INF-filer alla %strkey -% token som "citerade strängar" för att undvika oavsiktlig förlust av inledande och avslutande blanksteg under INF-parsning. Användningen av "citerade strängar" säkerställer också att särskilt långa strängvärden som radbryts över linjer inte kan trunkeras och att strängar med avslutande omvänt snedstreck inte kan sammanfogas till nästa rad i INF-filen.
Om du vill skapa en enda internationell INF-fil kan en INF ha en uppsättning språkspecifika strängar.LanguageID-avsnitt , som visas i den formella syntaxsatsen. LanguageID-tillägget är ett hexadecimalt värde med fyra siffror (utan inledande "0x") som definieras på följande sätt:
- De lägre 10 bitarna innehåller det primära språk-ID:t och de kommande 6 bitarna innehåller underspråks-ID:t enligt makelangID-makrot som definierats i Winnt.h.
- Språk- och underspråks-ID:na måste matcha de systemdefinierade värdena för konstanterna Win32 LANG_XXX och SUBLANG_XXX som definierats i Winnt.h.
Ett LanguageID-värde på 0407 representerar till exempel ett primärt språk-ID för LANG_GERMAN (07) med ett underspråks-ID för SUBLANG_GERMAN (01) som i följande exempel:
[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"
En INF-fil kan bara innehålla ett avsnitt med strängar , tillsammans med en Strings.LanguageID-avsnitt för varje LanguageID-värde .
Windows väljer ett enda strängavsnitt som används för att översätta alla %strkey-% token för installationen. Beroende på det aktuella språket för en viss dator väljer Windows avsnittet Strängar på följande sätt:
Windows letar först efter . LanguageID-värden i INF som matchar det aktuella språk som tilldelats datorn. Om en exakt matchning hittas använder Windows dessa strängar.LanguageID INF-avsnitt för att översätta alla %strkey-% token som har definierats i INF.
Du måste duplicera alla strängtoken i alla strängar.* även numeriska/fasta konstanter som inte behöver lokaliseras.
Annars letar Windows efter en matchning mot värdet LANG_XXX med värdet SUBLANG_NEUTRAL som SUBLANG_XXX. Om en sådan matchning hittas använder Windows inf-avsnittet för att översätta alla %strkey-% token som har definierats i INF.
Annars letar Windows efter en matchning mot värdet LANG_XXX och alla giltiga SUBLANG_XXX för samma LANG_XXX-familj. Om en sådan partiell matchning hittas använder du det Strängar.LanguageID INF-avsnitt för att översätta alla %strkey -% token som definieras i INF.
Annars använder Windows avsnittet odekorerade strängar för att översätta %strkey-% token som definieras i INF.
Enligt konvention, och för enkelhetens skull när det gäller att skapa en uppsättning INF-filer för den internationella marknaden, är strängar avsnitten de sista i alla inf-systemfiler. Om du använder %strkey -%-token för alla användar synliga strängvärden i en INF, och placerar dem i avsnitt för strängar per språk, förenklas översättningen av sådana strängar. Mer information om språkspecifika INF-filer finns i Skapa internationella INF-filer.
Även om avsnitten Strängar är de sista avsnitten i varje INF-fil, kan alla angivna %strkey -% token som definierats i avsnittet Strängar användas flera gånger någon annanstans i INF, särskilt där det översatta värdet för denna token krävs. SetupAPI-funktionerna expanderar varje %strkey-% token till den angivna strängen och använder sedan det utökade värdet för ytterligare INF-bearbetning.
Användningen av %strkey -% token i INF-filer är inte begränsad till användar synliga strängvärden. Dessa token kan användas på vilket sätt som helst praktiskt för INF-skrivaren, så länge varje token definieras i ett avsnitt med strängar . När du till exempel skriver en INF-fil som kräver specifikationen av flera GUID kan det vara praktiskt att skapa en %strkey -% token för varje GUID genom att använda ett beskrivande namn som ersättning för varje sådant GUID-värde.
Om du anger en uppsättning %strkey -% = "{GUID}" -värden i AVSNITTET Strängar i INF-filen måste du bara ange varje explicit GUID-värden en gång. Detta kan ge mer läsbar intern INF-dokumentation än genom att använda explicita GUID-värden i INF-filen.
Alla %strkey -% token måste definieras i DEN INF-fil som de refereras till i. För alla INF-filer som har poster som innehåller och behöver måste därför en inkluderad INF ha ett eget avsnitt med strängar för att definiera alla %strkey -% token som refereras i inf-filen.
I ett avsnitt med INF-strängar är den maximala längden i tecken för en ersättningssträng, inklusive ett avslutande NULL-tecken, 4096 (Windows Vista och senare versioner av Windows) och 512 (Windows Server 2003, Windows XP och Windows 2000). Efter strängersättning är den maximala längden i tecken för en INF-filsträng 4096, inklusive ett avslutande NULL-tecken.
Examples
I följande exempel visas ett fragment av avsnittet Strängar från en språkspecifik dvd.inf för installationer i engelsktalande länder/regioner.
[Strings]
Msft="Microsoft"
MfgToshiba="Toshiba"
Tosh404.DeviceDesc="Toshiba DVD decoder card"
; ...
I följande exempel visas strängsammanfogning.
[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."