Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine INF-Datei muss mindestens einen Zeichenfolgenabschnitt aufweisen, um jeden %Strkey% Token zu definieren, das an anderer Stelle in diesem INF angegeben ist.
[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""
...
Einträge
strkey1, strkey2, ...
Jeder Zeichenfolgenschlüssel in einer INF-Datei muss einen eindeutigen Namen angeben, der aus Buchstaben, Ziffern und/oder anderen explizit sichtbaren Zeichen besteht. Ein % Zeichen innerhalb eines solchen Strkey-Tokens muss als %%angegeben werden.
einige Zeichenfolgen | "some string"
Gibt eine Zeichenfolge an, optional durch Doppelte Anführungszeichen ("), die Buchstaben, Ziffern, Interpunktion und möglicherweise sogar bestimmte implizit sichtbare Zeichen enthält, insbesondere interne Leerzeichen und/oder Tabstoppzeichen. Eine nicht angestellte Zeichenfolge darf jedoch keine internen doppelten Anführungszeichen ("), Semikolon (;), Zeilenvorschub, Rückgabe- oder unsichtbare Steuerzeichen) enthalten, und es kann kein umgekehrter Schrägstrich () als endendes Zeichen aufweisen.
"* string-with-leading-or-trailing-whitespace* " |
"very-long-multiline-string" |
"string-ending-in-backslash" |
""Double-quoted-string-value""
Der für ein %strkey% Token angegebene Wert muss in doppelte Anführungszeichen (") eingeschlossen werden, wenn er einem der folgenden Kriterien entspricht:
Wenn eine angegebene Zeichenfolge führende oder nachfolgende Leerzeichen aufweist, die als Teil des Werts beibehalten werden müssen, muss diese Zeichenfolge in doppelte Anführungszeichen eingeschlossen werden, um zu verhindern, dass die führenden und/oder nachgestellten Leerzeichen vom INF-Parser verworfen werden.
Wenn eine lange Zeichenfolge möglicherweise interne Zeilenvorschub- oder Rückgabezeichen aufgrund des Zeilenumbruchs im Text-Editor enthalten kann, sollte sie auch in doppelte Anführungszeichen eingeschlossen werden, um zu verhindern, dass die Zeichenfolge beim anfänglichen internen Zeilenvorschub oder Rückgabezeichen abgeschnitten oder zurückgegeben wird.
Wenn eine solche Zeichenfolge ein Semikolon enthält, muss sie in doppelte Anführungszeichen eingeschlossen werden, um zu verhindern, dass die Zeichenfolge am Semikolon abgeschnitten wird. (Wie bereits in allgemeinen Syntaxregeln für INF-Dateien erwähnt, beginnt das Semikolon mit jedem Kommentar in INF-Dateien.)
Wenn eine solche Zeichenfolge in einem umgekehrten Schrägstrich endet, muss sie in doppelte Anführungszeichen gesetzt werden, um zu verhindern, dass die Zeichenfolge mit dem nächsten Eintrag verkettet wird. (Wie bereits in allgemeinen Syntaxregeln für INF-Dateien erwähnt, wird das umgekehrte Schrägstrichzeichen () als Zeilenkontinuator in INF-Dateien verwendet.)
Wie bei einer nicht anführungszeichenbasierten Zeichenfolgenangabe kann eine solche "anführungszeichen" keine internen doppelten Anführungszeichen enthalten. Es kann jedoch als explizit doppelt zitierter Zeichenfolgenwert angegeben werden, indem mindestens ein zusätzliches Paar an Anführungszeichen verwendet wird (z. B. ""einige Zeichenfolge").
Der INF-Parser verwirft nicht nur das äußerste Paar von doppelten Anführungszeichen für eine beliebige "anführungszeichen" in diesem Abschnitt, sondern komprimiert auch jedes nachfolgende sequenzielle Paar doppelter Anführungszeichen in ein einzelnes doppeltes Anführungszeichen.
Beispielsweise wird ""some string"" auch zu "some string", wenn sie analysiert wird.
Um zusammenzufassen, muss eine beliebige Zeichenfolge in ein Paar doppelte Anführungszeichen (") eingeschlossen werden, wenn eine der folgenden Zeichen zutrifft:
- Die Zeichenfolge enthält führende oder nachfolgende Leerzeichen.
- Die Zeichenfolge ist so lang, dass sie umbrochen wird.
- Die Zeichenfolge enthält ein Semikolon oder ein endgültiges umgekehrtes Schrägstrichzeichen.
- Die Zeichenfolge selbst ist eine an zitierte Zeichenfolge.
Der SYSTEM-INF-Parser verwirft das äußerste umschließende Paar doppelter Anführungszeichen, die eine solche Zeichenfolge trennen, zusammen mit führenden oder nachgestellten Leerzeichen außerhalb der doppelten Anführungszeichen-Zeichenfolgentrennzeichen.
Bemerkungen
Da der SYSTEM-INF-Parser das äußerste Paar von doppelten Anführungszeichen aus einer beliebigen "anführungszeichen" definierten Zeichenfolge entfernt, die ein %Strkey -%-Token definiert, definieren viele der SYSTEM-INF-Dateien alle %Strkey -% Token als "zitierte Zeichenfolgen", um den unbeabsichtigten Verlust von führenden und nachgestellten Leerzeichen während der INF-Analyse zu vermeiden. Durch die Verwendung von "Zeichenfolgen in Anführungszeichen" wird auch sichergestellt, dass insbesondere lange Zeichenfolgenwerte, die über Zeilen umbrechen, nicht abgeschnitten werden können und dass Zeichenfolgen mit endenden Umgekehrten Schrägstrichen nicht mit der nächsten Zeile in der INF-Datei verkettet werden können.
Zum Erstellen einer einzelnen internationalen INF-Datei kann ein INF eine Reihe von gebietsschemaspezifischen Zeichenfolgen aufweisen.LanguageID-Abschnitte , wie in der formalen Syntaxausweisung dargestellt. Die LanguageID-Erweiterung ist ein vierstelliger Hexadezimalwert (ohne führendes "0x"), der wie folgt definiert ist:
- Die unteren 10 Bit enthalten die primäre Sprach-ID, und die nächsten 6 Bit enthalten die Unterlanguage-ID, wie durch das in Winnt.h definierte MAKELANGID-Makro angegeben.
- Die Sprach- und Untersprachen-IDs müssen mit den systemdefinierten Werten der win32-LANG_XXX- und SUBLANG_XXX-Konstanten übereinstimmen, die in Winnt.h definiert sind.
Beispielsweise stellt ein LanguageID-Wert von 0407 eine primäre Sprach-ID von LANG_GERMAN (07) mit einer Unterlanguage-ID von SUBLANG_GERMAN (01) dar, z. B. im folgenden Beispiel:
[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"
Eine INF-Datei kann zusammen mit einer Zeichenfolge nur einen Zeichenfolgenabschnitt enthalten .LanguageID-Abschnitt für jeden LanguageID-Wert .
Windows wählt einen einzelnen Zeichenfolgenabschnitt aus, der verwendet wird, um alle %Strkey-% Token für die Installation zu übersetzen. Je nach aktuellem Gebietsschema eines bestimmten Computers wählt Windows wie folgt einen Zeichenfolgenabschnitt aus:
Windows sucht zuerst nach dem . LanguageID-Werte in der INF, die dem Computer zugewiesenen aktuellen Gebietsschema entsprechen. Wenn eine genaue Übereinstimmung gefunden wird, verwendet Windows diese Zeichenfolgen.LanguageID INF-Abschnitt zum Übersetzen aller %strkey% Token, die innerhalb des INF definiert sind.
Sie müssen alle Zeichenfolgentoken für alle Zeichenfolgen duplizieren.* Abschnitte, sogar numerische/feste Konstanten, die nicht lokalisiert werden müssen.
Andernfalls sucht Windows als Nächstes nach einer Übereinstimmung mit dem LANG_XXX-Wert mit dem Wert SUBLANG_NEUTRAL als SUBLANG_XXX. Wenn eine solche Übereinstimmung gefunden wird, verwendet Windows diesen INF-Abschnitt, um alle %Strkey-% Token zu übersetzen, die innerhalb des INF definiert sind.
Andernfalls sucht Windows nach einer Übereinstimmung mit dem LANG_XXX-Wert und allen gültigen SUBLANG_XXX für dieselbe LANG_XXX-Familie. Wenn eine solche partielle Übereinstimmung gefunden wird, verwenden Sie diese Zeichenfolgen.LanguageID INF-Abschnitt zum Übersetzen aller %strkey% Token, die innerhalb des INF definiert sind.
Andernfalls verwendet Windows den Abschnitt "Nicht bewertete Zeichenfolgen" zum Übersetzen %Strkey-% Token, die innerhalb des INF definiert sind.
Gemäß der Konvention und zur Vereinfachung der Erstellung einer Reihe von INF-Dateien für den internationalen Markt sind Strings-Abschnitte die letzte in allen System-INF-Dateien. Die Verwendung von %Strkey -% Token für alle benutzer sichtbaren Zeichenfolgenwerte in einem INF und das Platzieren in Abschnitten pro Gebietsschema vereinfacht die Übersetzung solcher Zeichenfolgen. Weitere Informationen zu gebietsschemaspezifischen INF-Dateien finden Sie unter Creating International INF Files.
Obwohl Zeichenfolgenabschnitte die letzten Abschnitte in jeder INF-Datei sind, können alle angegebenen %strkey% Token, die in einem Abschnitt " Strings " definiert sind, wiederholt an anderer Stelle im INF verwendet werden, insbesondere, wo der übersetzte Wert dieses Tokens erforderlich ist. Die SetupAPI-Funktionen erweitern jedes %strkey% Token auf die angegebene Zeichenfolge und verwenden dann diesen erweiterten Wert für die weitere INF-Verarbeitung.
Die Verwendung von %strkey -% Token in INF-Dateien ist nicht auf benutzer sichtbare Zeichenfolgenwerte beschränkt. Diese Token können auf beliebige Weise für den INF-Writer verwendet werden, solange jedes Token in einem Zeichenfolgenabschnitt definiert ist. Wenn Sie beispielsweise eine INF-Datei schreiben, die die Spezifikation mehrerer GUIDs erfordert, kann es praktisch sein, ein %Strkey -%-Token für jede GUID zu erstellen, indem Sie einen aussagekräftigen Namen als Ersatz für jeden solchen GUID-Wert verwenden.
Wenn Sie einen Satz von %Strkey -% = "{GUID}" -Werte im Abschnitt " Strings " der INF-Datei angeben, müssen Sie nur einmal die einzelnen expliziten GUID-Werte eingeben. Dies kann hilfreich sein, um eine besser lesbare interne INF-Dokumentation bereitzustellen, als explizite GUID-Werte in der GESAMTEN INF-Datei zu verwenden.
Alle %strkey -% Token müssen innerhalb der INF-Datei definiert werden, auf die verwiesen wird. Daher muss ein eingeschlossener INF-Abschnitt für jede INF-Datei mit Include - und Needs-Einträgen über einen eigenen Abschnitt " Strings " verfügen, um alle %Strkey -% Token zu definieren, auf die in diesem INF verwiesen wird.
In einem INF-Zeichenfolgenabschnitt beträgt die maximale Länge in Zeichen einer Ersetzungszeichenfolge, einschließlich eines endenden NULL-Zeichens, 4096 (Windows Vista und neuere Versionen von Windows) und 512 (Windows Server 2003, Windows XP und Windows 2000). Nach der Zeichenfolgenersetzung beträgt die maximale Länge einer INF-Dateizeichenfolge 4096, einschließlich eines endenden NULL-Zeichens.
Examples
Das folgende Beispiel zeigt ein Fragment eines Abschnitts "Strings" aus einem vom System bereitgestellten gebietsschemaspezifischen dvd.inf für Installationen in englischsprachigen Ländern/Regionen.
[Strings]
Msft="Microsoft"
MfgToshiba="Toshiba"
Tosh404.DeviceDesc="Toshiba DVD decoder card"
; ...
Das folgende Beispiel zeigt eine Zeichenfolgenverkettung.
[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."