Sezione Stringhe INF

Un file INF deve avere almeno una sezione Strings per definire ogni %strkey% token specificato altrove in tale 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""
 ...

Voci

strkey1, strkey2, ...
Ogni chiave stringa in un file INF deve specificare un nome univoco costituito da lettere, cifre e/o altri caratteri esplicitamente visibili. Un carattere % all'interno di un token strkey di questo tipo deve essere espresso come %%.

alcune stringhe | "some string"
Specifica una stringa, facoltativamente delimitata utilizzando virgolette doppie ("), che contiene lettere, cifre, punteggiatura e possibilmente anche determinati caratteri visibili in modo implicito, in particolare spazi interni e/o caratteri di tabulazione. Tuttavia, una stringa senza virgolette non può contenere virgolette doppie interne ("), punto e virgola (;), avanzamento riga, restituito o qualsiasi carattere di controllo invisibile e non può avere una barra rovesciata () come carattere finale.

"* string-with-leading-or-trailing-whitespace* " |

"very-long-multiline-string" |

"string-with-punto e virgola" |

"barra rovesciata di fine stringa" |

""double-quoted-string-value""
Il valore specificato per un %token strkey% deve essere racchiuso tra virgolette doppie (") se soddisfa uno dei criteri seguenti:

  • Se una stringa specificata include spazi vuoti iniziali o finali che devono essere mantenuti come parte del relativo valore, tale stringa deve essere racchiusa tra virgolette doppie per impedire che gli spazi vuoti iniziali e/o finali vengano eliminati dal parser INF.

  • Se una stringa lunga potrebbe contenere caratteri interni di avanzamento riga o restituiti a causa del ritorno a capo riga nell'editor di testo, deve anche essere racchiusa tra virgolette doppie per impedire il troncamento della stringa in corrispondenza del avanzamento riga interno iniziale o del carattere restituito.

  • Se tale stringa contiene un punto e virgola, deve essere racchiusa tra virgolette doppie per impedire che la stringa venga troncata in corrispondenza del punto e virgola. Come già accennato in Regole di sintassi generali per i file INF, il carattere punto e virgola inizia ogni commento nei file INF.

  • Se una stringa di questo tipo termina in una barra rovesciata, deve essere racchiusa tra virgolette doppie per impedire che la stringa venga concatenata con la voce successiva. Come già accennato nelle regole della sintassi generale per i file INF, il carattere barra rovesciata () viene usato come continuazione di riga nei file INF.

  • Analogamente a una specifica di stringa senza virgolette, tale "stringa tra virgolette" non può contenere virgolette doppie interne. Tuttavia, può essere specificato come valore stringa tra virgolette doppie in modo esplicito usando una o più coppie aggiuntive di virgolette doppie ,ad esempio """some string"").

    Il parser INF non solo elimina la coppia più esterna di virgolette doppie per qualsiasi "stringa tra virgolette" in questa sezione, ma condensa anche ogni coppia sequenziale successiva di virgolette doppie in un unico carattere virgolette doppie.

    Ad esempio, """some string""" diventa anche "una stringa" quando viene analizzata.

Per riepilogare, qualsiasi stringa deve essere racchiusa tra virgolette doppie (") se è true una delle seguenti:

  • La stringa contiene spazi vuoti iniziali o finali.
  • La stringa è così lunga che la riga viene disposta a capo.
  • La stringa contiene un punto e virgola o un carattere barra rovesciata finale.
  • La stringa stessa è una stringa tra virgolette.

Il parser INF di sistema elimina la coppia di virgolette doppie più esterna delimitando tale stringa, insieme a qualsiasi carattere di spazio vuoto iniziale o finale al di fuori delle virgolette doppie delimitatori di stringa.

Remarks

Poiché il parser INF di sistema rimuove la coppia più esterna di virgolette doppie da qualsiasi "stringa tra virgolette" definendo un token %strkey%, molti dei file INF di sistema definiscono tutti %i token strkey% come "stringa tra virgolette" per evitare la perdita imprevista di spazi vuoti iniziali e finali durante l'analisi INF. L'uso di "stringhe tra virgolette" garantisce inoltre che non sia possibile troncare i valori di stringa particolarmente lunghi tra le righe e che le stringhe con barre rovesciate finali non possano essere concatenate alla riga successiva nel file INF.

Per creare un singolo file INF internazionale, un INF può avere un set di stringhe specifiche delle impostazioni locali.Sezioni LanguageID, come illustrato nell'istruzione di sintassi formale. L'estensione LanguageID è un valore esadecimale di 4 cifre (senza un "0x") iniziale definito come segue:

  • I 10 bit inferiori contengono l'ID lingua primaria e i 6 bit successivi contengono l'ID sottolanguage, come specificato dalla macro MAKELANGID definita in Winnt.h.
  • Gli ID lingua e sottolanguage devono corrispondere ai valori definiti dal sistema delle costanti Win32 LANG_XXX e SUBLANG_XXX definite in Winnt.h.

Ad esempio, un valore LanguageID pari a 0407 rappresenta un ID di lingua primaria di LANG_GERMAN (07) con un ID di sottolanguage di SUBLANG_GERMAN (01), ad esempio nell'esempio seguente:

[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 file INF può contenere una sola sezione Stringhe , insieme a una stringa.Sezione LanguageID per ogni valore LanguageID .

Windows seleziona una singola sezione Stringhe usata per convertire tutti i token %strkey% per l'installazione. A seconda delle impostazioni locali correnti di un determinato computer, Windows seleziona una sezione Stringhe nel modo seguente:

  1. Windows cerca prima di tutto . Valori LanguageID in INF che corrispondono alle impostazioni locali correnti assegnate al computer. Se viene trovata una corrispondenza esatta, Windows usa stringhe.LanguageID Sezione INF per convertire tutti i token %strkey% definiti all'interno di INF.

    È necessario duplicare tutti i token di stringa in tutte le stringhe.* sezioni, anche costanti numeriche/fisse che non devono essere localizzate.

  2. In caso contrario, Windows cerca una corrispondenza con il valore LANG_XXX con il valore di SUBLANG_NEUTRAL come SUBLANG_XXX. Se viene trovata una corrispondenza di questo tipo, Windows usa tale sezione INF per convertire tutti i token %strkey% definiti all'interno dell'INF.

  3. In caso contrario, Windows cerca una corrispondenza con il valore LANG_XXX e qualsiasi SUBLANG_XXX valido per la stessa famiglia LANG_XXX. Se viene trovata una corrispondenza parziale di questo tipo, usare stringhe.LanguageID Sezione INF per convertire tutti i token strkey% %definiti all'interno di INF.

  4. In caso contrario, Windows usa la sezione Stringhe non dichiarate per convertire tutti i token strkey %strkey% definiti all'interno di INF.

Per convenzione, e per praticità nella creazione di un set di file INF per il mercato internazionale, le sezioni Stringhe sono l'ultimo all'interno di tutti i file INF di sistema. Usando %strkey% token per tutti i valori stringa visibili dall'utente all'interno di un INF e inserendoli in sezioni stringhe per impostazioni locali, semplifica la traduzione di tali stringhe. Per altre informazioni sui file INF specifici delle impostazioni locali, vedere Creazione di file INF internazionali.

Anche se le sezioni Stringhe sono le ultime sezioni di ogni file INF, qualsiasi %token strkey% definito in una sezione Stringhe può essere usato ripetutamente altrove in INF, in particolare, ovunque sia necessario il valore convertito di tale token. Le funzioni SetupAPI espandono ogni %token strkey% alla stringa specificata e quindi usano tale valore espanso per un'ulteriore elaborazione INF.

L'uso di %strkey% token all'interno dei file INF non è limitato ai valori stringa visibili dall'utente. Questi token possono essere usati in qualsiasi modo per il writer INF, purché ogni token sia definito all'interno di una sezione Stringhe . Ad esempio, quando si scrive un file INF che richiede la specifica di diversi GUID, potrebbe essere utile creare un %token strkey% per ogni GUID, usando un nome significativo come sostituto di ogni valore GUID.

Per specificare un set di % valori strkey% = "{GUID}" nella sezione Stringhe del file INF è necessario digitare ogni valore GUID esplicito una sola volta. Ciò consente di fornire una documentazione INF interna più leggibile rispetto all'uso di valori GUID espliciti in tutto il file INF.

Tutti i token strkey% %devono essere definiti all'interno del file INF in cui viene fatto riferimento. Pertanto, per qualsiasi file INF con voci Include e Needs , un INF incluso deve avere una propria sezione Strings per definire tutti i token strkey %% a cui si fa riferimento in tale INF.

In una sezione Stringhe INF la lunghezza massima, in caratteri, di una stringa di sostituzione, incluso un carattere NULL di terminazione, è 4096 (Windows Vista e versioni successive di Windows) e 512 (Windows Server 2003, Windows XP e Windows 2000). Dopo la sostituzione di stringhe, la lunghezza massima, in caratteri, di una stringa di file INF è 4096, incluso un carattere NULL di terminazione.

Esempi

L'esempio seguente mostra un frammento di una sezione Strings di un dvd.inf specifico delle impostazioni locali fornito dal sistema per le installazioni in paesi/aree geografiche in lingua inglese.

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

Nell'esempio seguente viene illustrata la concatenazione di stringhe.

[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."

Vedere anche

DDInstall

DDInstall. CoInstaller

DDInstall. HW

DDInstall. Interfacce

DDInstall. Servizi

Produttore

InterfaceInstall32

Modelli

SourceDisksNames

Versione