INF Stringleri Bölümü

INF dosyasının, inf'de başka bir yerde belirtilen her %strkey% belirtecini tanımlamak için en az bir Dizeler bölümü olmalıdır.

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

Giriş

strkey1, strkey2, ...
BIR INF dosyasındaki her dize anahtarı harf, rakam ve/veya açıkça görünen diğer karakterlerden oluşan benzersiz bir ad belirtmelidir. Bu tür bir strkey belirtecinin içindeki % karakteri olarak %%ifade edilmelidir.

bazı dize | "bazı dize"
harf, basamak, noktalama işareti ve hatta özellikle iç boşluk ve/veya sekme karakterleri gibi örtük olarak görünen karakterler içeren, isteğe bağlı olarak çift tırnak işareti karakterleri (") kullanılarak sınırlandırılmış bir dize belirtir. Ancak, tırnak içine alınmamış bir dize iç çift tırnak işareti ("), noktalı virgül (;), satır besleme, dönüş veya görünmez denetim karakterleri içeremez ve son karakteri olarak ters eğik çizgi () içeremez.

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

"çok uzun-çok satırlı-dize" |

"noktalı virgülle dize" |

"ters eğik çizgiyle biten dize" |

""çift tırnaklı-dize-değeri""
%strkey% belirteci için belirtilen değer, aşağıdaki ölçütlerden herhangi birini karşılıyorsa çift tırnak işareti (") içine alınmalıdır :

  • Belirtilen dizede değerinin parçası olarak tutulması gereken baştaki veya sondaki boşluk varsa, baştaki ve/veya sondaki boşluklarının INF ayrıştırıcısı tarafından atılmasını önlemek için bu dizenin çift tırnak işareti karakterleri içine alınması gerekir.

  • Uzun bir dize, metin düzenleyicisinde satır kaydırma nedeniyle herhangi bir iç satır besleme veya dönüş karakteri içerebilirse, dizenin ilk iç satır beslemesinde veya dönüş karakterinde kesilmesini önlemek için çift tırnak içine alınmalıdır.

  • Böyle bir dize noktalı virgül içeriyorsa, dizenin noktalı virgülle kesilmesini önlemek için çift tırnak içine alınmalıdır. ( INF Dosyaları için Genel Söz Dizimi Kuralları'nda daha önce belirtildiği gibi, noktalı virgül karakteri INF dosyalarındaki her açıklamayı başlatır.)

  • Böyle bir dize ters eğik çizgiyle bitiyorsa, dizenin sonraki girişle birleştirilmesini önlemek için çift tırnak içine alınmalıdır. (INF Dosyaları için Genel Söz Dizimi Kuralları'nda daha önce belirtildiği gibi, INF dosyalarında satır devamlılayıcısı olarak ters eğik çizgi karakteri () kullanılır.)

  • Tırnak içine alınmamış dize belirtimleri gibi, böyle bir "tırnak işareti" iç çift tırnak işareti karakteri içeremez. Ancak, bir veya daha fazla çift tırnak işareti karakteri çifti (örneğin, ""bazı dize"") kullanılarak açıkça çift tırnaklı dize değeri olarak belirtilebilir.

    INF ayrıştırıcısı, bu bölümdeki herhangi bir "tırnak içine alınmış dize" için en dıştaki çift çift tırnak işaretlerini atmakla kalmaz, aynı zamanda izleyen çift tırnak işaretlerinin her birini tek bir çift tırnak işareti karakterine daraltır.

    Örneğin, ayrıştırıldığında """some string""" de "some string" olur.

Özetlemek gerekirse, aşağıdakilerden biri doğruysa, herhangi bir dize çift tırnak işareti karakteri (") içine alınmalıdır:

  • Dize, baştaki veya sondaki boşluğu içerir.
  • Dize o kadar uzundur ki, satır kaydırılır.
  • Dize noktalı virgül veya son ters eğik çizgi karakteri içerir.
  • Dizenin kendisi tırnak içine alınmış bir dizedir.

Sistem INF ayrıştırıcısı, böyle bir dizeyi sınırlandıran en dıştaki çift tırnak işareti çiftini atar ve çift tırnak işareti dize sınırlayıcılarının dışındaki baştaki veya sondaki boşluk karakterlerini atar.

Remarks

Sistem INF ayrıştırıcısı, %strkey% belirteci tanımlayan herhangi bir "tırnak içine alınmış dizeden" en dıştaki çifti ayırdığından, sistem INF dosyalarının çoğu INF ayrıştırma sırasında baştaki ve sondaki boşluklarda istenmeyen kayıp yaşanmasını önlemek için tüm %strkey% belirteçlerini "alıntılanmış dize" olarak tanımlar. "Tırnak içine alınmış dize"lerin kullanılması, özellikle satırlar arasında kaydırılan uzun dize değerlerinin kesilmesini ve son ters eğik çizgi içeren dizelerin INF dosyasındaki bir sonraki satırla birleştirilememesini de sağlar.

Tek bir uluslararası INF dosyası oluşturmak için, INF yerel ayara özgü Dizeler kümesine sahip olabilir.Resmi söz dizimi deyiminde gösterildiği gibi LanguageID bölümleri. LanguageID uzantısı, aşağıdaki gibi tanımlanan 4 basamaklı bir onaltılık değerdir (başında "0x" olmadan):

  • Alt 10 bit birincil dil kimliğini, sonraki 6 bit ise Winnt.h içinde tanımlanan MAKELANGID makrosunda belirtildiği gibi alt dil kimliğini içerir.
  • Dil ve alt dil kimlikleri Win32 LANG_XXX ve Winnt.h içinde tanımlanan SUBLANG_XXXx sabitlerinin sistem tanımlı değerleriyle eşleşmelidir.

Örneğin, 0407 languageID değeri, aşağıdaki örnekte olduğu gibi SUBLANG_GERMAN (01) alt dil kimliğiyle LANG_GERMAN birincil dil kimliğini (07) temsil eder:

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

BIR INF dosyası, bir Dize ile birlikte yalnızca bir Dizeler bölümü içerebilir.Her LanguageID değeri için LanguageID bölümü.

Windows, yükleme için tüm %strkey% belirteçlerini çevirmek için kullanılan tek bir Dizeler bölümü seçer. Belirli bir bilgisayarın geçerli yerel ayarına bağlı olarak, Windows aşağıdaki şekilde bir Dizeler bölümü seçer:

  1. Windows önce öğesini arar. BILGISAYARA atanan geçerli yerel ayar ile eşleşen INF'deki LanguageID değerleri. Tam eşleşme bulunursa, Windows bu Dizeleri kullanır.LanguageID INF bölümünde tanımlanan tüm %strkey% belirteçlerini çevirmek için.

    Tüm dize belirteçlerini tüm Dizeler arasında çoğaltmanız gerekir.* bölümleri, hatta yerelleştirilmesi gerekmeyen sayısal/sabit sabitler.

  2. Aksi takdirde Windows, SUBLANG_NEUTRAL değerini SUBLANG_XXX olarak içeren LANG_XXX değeriyle bir eşleşme arar. Böyle bir eşleşme bulunursa, Windows INF içinde tanımlanan tüm %strkey% belirteçlerini çevirmek için bu INF bölümünü kullanır.

  3. Aksi takdirde, Windows aynı LANG_XXX ailesi için LANG_XXX değeriyle ve geçerli SUBLANG_XXXX ile eşleşme arar. Böyle bir kısmi eşleşme bulunursa, bu Dizeleri kullanın.LanguageID INF bölümünde tanımlanan tüm %strkey% belirteçlerini çevirmek için.

  4. Aksi takdirde, Windows inf içinde tanımlanan tüm %strkey% belirteçleri çevirmek için sıralanmamış Dizeler bölümünü kullanır.

Kurala göre ve uluslararası pazar için bir dizi INF dosyası oluşturmada kolaylık sağlamak amacıyla , Dizeler bölümleri tüm sistem INF dosyalarındaki son bölümlerdir. Bir INF içindeki tüm kullanıcı tarafından görünen dize değerleri için %strkey% belirteçleri kullanmak ve bunları yerel ayar Başına Dizeler bölümlerine yerleştirmek, bu tür dizelerin çevirisini basitleştirir. Yerel ayara özgü INF dosyaları hakkında daha fazla bilgi için bkz. Uluslararası INF Dosyaları Oluşturma.

Dizeler bölümleri her INF dosyasındaki son bölümler olsa da, Bir Dizeler bölümünde tanımlanan belirtilen %strkey% belirteci, özellikle de bu belirtecin çevrilmiş değerinin gerekli olduğu her yerde INF'nin başka bir yerinde tekrar tekrar kullanılabilir. SetupAPI işlevleri her %strkey% belirtecini belirtilen dizeye genişletir ve daha fazla INF işlemi için bu genişletilmiş değeri kullanır.

INF dosyalarında %strkey% belirteçlerinin kullanımı, kullanıcı tarafından görünen dize değerleriyle sınırlı değildir. Bu belirteçler, her belirteç Bir Dizeler bölümünde tanımlandığı sürece INF yazıcısı için uygun herhangi bir şekilde kullanılabilir. Örneğin, çeşitli GUID'lerin belirtimini gerektiren bir INF dosyası yazdığınızda, her GUID değerinin yerine anlamlı bir ad kullanarak her GUID için bir %strkey% belirteci oluşturmak kullanışlı olabilir.

INF dosyasının %Dizeler bölümünde bir dizi strkey% = "{GUID}" değeri belirtmek için her açık GUID değerini yalnızca bir kez yazmanız gerekir. Bu, INF dosyası genelinde açık GUID değerlerini kullanmaktan daha okunabilir iç INF belgeleri sağlamaya yardımcı olabilir.

Tüm %strkey% belirteçleri, başvuruldıkları INF dosyasında tanımlanmalıdır. Bu nedenle, Include ve Needs girdileri olan herhangi bir INF dosyası için, dahil edilen bir INF'nin, bu INF'de başvuruda bulunılan tüm %strkey% belirteçlerini tanımlamak için kendi Dizeleri bölümüne sahip olması gerekir.

INF Dizeleri bölümünde, sonlandırıcı NULL karakter de dahil olmak üzere bir değiştirme dizesinin karakter cinsinden uzunluk üst sınırı 4096 (Windows Vista ve Windows'in sonraki sürümleri) ve 512 (Windows Server 2003, Windows XP ve Windows 2000) şeklindedir. Dize değiştirmeden sonra, bir INF dosya dizesinin karakter cinsinden uzunluğu 4096'dır ve null karakter sonlandırılır.

Examples

Aşağıdaki örnekte, İngilizce konuşulan ülkelerde/bölgelerdeki yüklemeler için sistem tarafından sağlanan yerel ayara özgü dvd.inf dosyasındaki Dizeler bölümünün bir parçası gösterilmektedir.

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

Aşağıdaki örnekte dize birleştirme gösterilmektedir.

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

Ayrıca bkz.

DDInstall

DDInstall. CoInstallers

DDInstall. HW

DDInstall. Arabirimler

DDInstall. Hizmetler

Üretici

InterfaceInstall32

Modeller

SourceDisksNames

Sürüm