Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Soubor INF musí mít alespoň jeden oddíl Řetězců , aby se definovaly všechny %strkey% tokenu zadaného jinde v tomto 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""
...
Položky
strkey1, strkey2, ...
Každý klíč řetězce v souboru INF musí určovat jedinečný název, který se skládá z písmen, číslic a/nebo jiných explicitně viditelných znaků. Znak % v rámci tohoto tokenu strkey musí být vyjádřen jako %%.
nějaký řetězec | "nějaký řetězec"
Určuje řetězec, který je volitelně oddělený pomocí dvojitých uvozovek ("), který obsahuje písmena, číslice, interpunkci a případně i určité implicitně viditelné znaky, zejména vnitřní mezery a/nebo znaky tabulátoru. Necitovaný řetězec však nemůže obsahovat vnitřní dvojité uvozovky ("), středník (;), spojnicový kanál, návrat ani žádné neviditelné řídicí znaky a nemůže mít zpětné lomítko () jako konečný znak.
"* string-with-leading-or-trailing-whitespace* " |
"very-long-multiline-string" |
""double-quoted-string-value""
Hodnota zadaná pro %strkey% token musí být uzavřena do uvozovek ("), pokud splňuje některá z následujících kritérií:
Pokud má zadaný řetězec počáteční nebo koncové prázdné znaky, které musí být zachovány jako součást jeho hodnoty, musí být tento řetězec uzavřen do dvojitých uvozovek, aby se zabránilo zahození počátečních a/nebo koncových prázdných znaků analyzátorem INF.
Pokud dlouhý řetězec může obsahovat jakékoli vnitřní znakové znaky nebo vrácené znaky z důvodu obtékání řádku v textovém editoru, měl by být také uzavřen do dvojitých uvozovek, aby se zabránilo zkrácení řetězce na počáteční vnitřní řádekfeed nebo návratový znak.
Pokud takový řetězec obsahuje středník, musí být uzavřen v uvozovkách, aby se zabránilo zkrácení řetězce na středník. (Jak už bylo zmíněno v obecných syntaktických pravidlech pro soubory INF, středník začíná každý komentář v souborech INF.)
Pokud takový řetězec končí zpětným lomítkem, musí být uzavřen v uvozovkách, aby se zabránilo zřetězení řetězce s další položkou. (Jak už bylo zmíněno v obecných pravidlech syntaxe pro soubory INF, zpětné lomítko () se používá jako spojnicový kontinuátor v souborech INF.)
Podobně jako specifikace řetězce bez uvozovek nemůže takový řetězec v uvozovkách obsahovat interní uvozovky. Dá se ale zadat jako explicitně dvojitá řetězcová hodnota pomocí jedné nebo více dalších dvojic dvou uvozovek (například "nějaký řetězec"").
Analyzátor INF nejen zahodí vnější dvojici ohraničující dvojité uvozovky pro libovolný řetězec v uvozovkách v této části, ale také zkondenzuje každou následnou sekvenční dvojici dvojitých uvozovek na jeden znak uvozovek.
Například ""nějaký řetězec""" se při analýze také změní na "nějaký řetězec".
Aby bylo možné shrnout, musí být jakýkoli řetězec uzavřený v páru znaků dvojitých uvozovek ("), pokud je splněna některá z následujících hodnot:
- Řetězec obsahuje úvodní nebo koncové prázdné znaky.
- Řetězec je tak dlouhý, aby se zalomil řádek.
- Řetězec obsahuje středník nebo konečný znak zpětného lomítka.
- Samotný řetězec je řetězec v uvozování.
Analyzátor INF systému zahodí vnější uzavřenou dvojici dvojitých uvozovek oddělených takovým řetězcem spolu s počátečními nebo koncovými znaky prázdných znaků mimo oddělovače řetězců dvojitých uvozovek.
Remarks
Vzhledem k tomu, že analyzátor INF systému odstraní vnější dvojici uzavřených dvojitých uvozovek z libovolného řetězce "quoted string" definující %strkey% token, mnoho systémových souborů INF definuje všechny %strkey% tokeny jako "quoted string", aby se zabránilo nezamýšlené ztrátě úvodních a koncových prázdných znaků během analýzy INF. Použití řetězce suvozovky také zajišťuje, že zvlášť dlouhé řetězcové hodnoty, které se zalamují přes řádky, nelze zkrátit a že řetězce s koncovými zpětnými lomítky nelze zřetězením na další řádek v souboru INF.
Pokud chcete vytvořit jeden mezinárodní soubor INF, může mít inf sadu řetězců specifických pro národní prostředí.Oddíly LanguageID, jak je znázorněno ve formálním příkazu syntaxe. Rozšíření LanguageID je 4místná šestnáctková hodnota (bez úvodní hodnoty 0x), která je definována takto:
- Nižších 10 bitů obsahuje ID primárního jazyka a dalších 6 bitů obsahuje ID podlanguage, jak je určeno makrem MAKELANGID definovaným v winnt.h.
- ID jazyka a podlanguage musí odpovídat systémovým hodnotám win32 LANG_XXX a konstant SUBLANG_XXX definovaných v winnt.h.
Například hodnota LanguageID 0407 představuje ID primárního jazyka LANG_GERMAN (07) s id podlanguage SUBLANG_GERMAN (01), například v následujícím příkladu:
[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"
Soubor INF může obsahovat pouze jeden oddíl Řetězců spolu s jedním řetězcem.Oddíl LanguageID pro každou hodnotu LanguageID .
Windows vybere jeden oddíl Řetězců, který slouží k překladu všech %strkey% tokenů pro instalaci. V závislosti na aktuálním národním prostředí konkrétního počítače Windows vybere oddíl Řetězce následujícím způsobem:
Windows nejprve hledá . Hodnoty LanguageID v inf, které odpovídají aktuálnímu národnímu prostředí přiřazeným k počítači. Pokud se najde přesná shoda, Windows použije tento řetězec.ID jazyka Oddíl INF pro překlad všech %strkey% tokenů definovaných v inf.
Musíte duplikovat všechny tokeny řetězců ve všech řetězcích.* i číselné/pevné konstanty, které nemusí být lokalizovány.
V opačném případě Windows hledá shodu s hodnotou LANG_XXX s hodnotou SUBLANG_NEUTRAL jako SUBLANG_XXX. Pokud se taková shoda najde, Windows použije tuto část INF k překladu všech %strkey% tokenů definovaných v inf.
V opačném případě Windows vyhledá shodu s hodnotou LANG_XXX a platnými SUBLANG_XXX pro stejnou řadu LANG_XXX. Pokud se taková částečná shoda najde, použijte tyto řetězce.ID jazyka Oddíl INF pro překlad všech %strkey% tokenů definovaných v inf.
V opačném případě Windows použije oddíl Nepojištěné řetězce ke všem překladu %strkey% tokeny, které jsou definovány v inf.
Podle konvence a pro usnadnění vytváření sady souborů INF pro mezinárodní trh jsou oddíly Strings poslední v rámci všech systémových souborů INF. Použití %strkey% tokeny pro všechny uživatelem viditelné řetězcové hodnoty v inf a jejich umístění do oddílů řetězce pro každé národní prostředí zjednodušuje překlad těchto řetězců. Další informace o souborech INF specifických pro národní prostředí naleznete v tématu Vytváření mezinárodních souborů INF.
I když jsou oddíly Řetězců posledními oddíly v každém souboru INF, všechny zadané %strkey% token definovaný v oddílu Strings se dají opakovaně používat jinde v inf, zejména všude tam, kde se vyžaduje přeložená hodnota tohoto tokenu. Funkce SetupAPI rozbalí každý %strkey% token na zadaný řetězec a pak použije tuto rozšířenou hodnotu pro další zpracování INF.
Použití tokenů %strkey% v souborech INF není omezeno na hodnoty řetězce viditelné uživatelem. Tyto tokeny lze použít jakýmkoli způsobem, který je vhodný pro zapisovač INF, pokud je každý token definován v části Řetězce . Například při zápisu souboru INF, který vyžaduje specifikaci několika identifikátorů GUID, může být vhodné vytvořit %strkey% token pro každý identifikátor GUID pomocí smysluplného názvu jako náhrady za každou takovou hodnotu GUID.
Zadání sady % hodnot strkey% = {GUID} v části Řetězce souboru INF vyžaduje, abyste zadali všechny explicitní hodnoty GUID pouze jednou. To může pomoct poskytnout čitelnější interní dokumentaci INF než použitím explicitních hodnot GUID v celém souboru INF.
Všechny %strkey% tokeny musí být definovány v souboru INF, ve kterém jsou odkazovány. Pro každý soubor INF, který obsahuje položky Include and Needs , musí mít zahrnutý INF vlastní oddíl Řetězce , aby definoval všechny %strkey% tokeny odkazované v tomto INF.
V části Řetězce INF je maximální délka v znacích náhradního řetězce, včetně ukončujícího znaku NULL, 4096 (Windows Vista a novějších verzích Windows) a 512 (Windows Server 2003, Windows XP a Windows 2000). Po nahrazení řetězce je maximální délka řetězce souboru INF ve znacích 4096, včetně ukončujícího znaku NULL.
Examples
Následující příklad ukazuje fragment oddílu Strings ze systémem dodaného národního prostředí dvd.inf pro instalace v anglicky mluvících zemích/oblastech.
[Strings]
Msft="Microsoft"
MfgToshiba="Toshiba"
Tosh404.DeviceDesc="Toshiba DVD decoder card"
; ...
Následující příklad ukazuje zřetězení řetězců.
[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."