Secção de Cordas INF

Um ficheiro INF deve ter pelo menos uma secção Strings para definir cada %strkey% token especificado noutro local desse 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""
 ...

Entradas

strkey1, strkey2, ...
Cada chave de cadeia num ficheiro INF deve especificar um nome único que consista em letras, dígitos e/ou outros caracteres explicitamente visíveis. Um carácter % dentro de tal token strkey deve ser expresso como %%.

algum fio | "algumfio"
Especifica uma cadeia, opcionalmente delimitada por caracteres de aspas duplas ("), que contém letras, dígitos, pontuação e possivelmente até certos caracteres implicitamente visíveis, em particular, espaços internos e/ou caracteres de tabulação. No entanto, uma cadeia sem aspas não pode conter aspas duplas internas ("), ponto e vírgula (;), avanço de linha, retorno ou quaisquer caracteres de controlo invisíveis, nem pode ter uma barra diagonal () como caractere final.

"* corda-com-espaço em branco para conduzir ou acabar* " |

"corda multilinha muito longa" |

"corda com ponto e vírgula" |

"terminação de corda em barra invertida" |

""valor de cadeia dupla aspas""
O valor especificado para um token % %strkeydeve estar incluído entre aspas duplas (") se cumprir algum dos seguintes critérios:

  • Se uma cadeia especificada tiver espaços brancos iniciais ou finais que devem ser mantidos como parte do seu valor, essa cadeia deve ser incluída em caracteres de aspas duplas para evitar que os espaços em branco iniciais e/ou finais sejam descartados pelo analisador INF.

  • Se uma cadeia longa puder conter caracteres internos de avanço de linha ou de retorno devido ao enrolamento de linha no editor de texto, deve também estar incluída entre aspas duplas para evitar o truncamento da cadeia na sequência interna inicial ou no carácter de retorno.

  • Se tal cadeia contiver um ponto e vírgula, deve ser incluída entre aspas duplas para evitar que a cadeia seja truncada no ponto e vírgula. (Como já mencionado nas Regras Gerais de Sintaxe para Ficheiros INF, o carácter ponto e vírgula inicia cada comentário nos ficheiros INF.)

  • Se tal cadeia terminar numa barra diagonal, deve ser incluída entre aspas duplas para evitar que a cadeia seja concatenada com a próxima entrada. (Como já mencionado nas Regras Gerais de Sintaxe para Ficheiros INF, o carácter de barra inversa () é usado como continuador de linha nos ficheiros INF.)

  • Tal como uma especificação de cadeia sem aspas, tal "cadeia aspas" não pode conter caracteres internos de aspas duplas. No entanto, pode ser especificado como um valor de cadeia explicitamente entre aspas duplas usando um ou mais pares adicionais de caracteres de aspas duplas (por exemplo, "alguma cadeia").

    O analisador INF não só descarta o par mais externo de aspas duplas para qualquer "cadeia de aspas" nesta secção, como também condensa cada par sequencial subsequente de aspas duplas num carácter de aspas duplas simples.

    Por exemplo, """alguma string""" também se torna "some string" quando é analisada.

Para resumir, qualquer cadeia deve estar incluída num par de caracteres de aspas duplas (") se alguma das seguintes coisas for verdadeira:

  • A corda contém espaço branco inicial ou posterior.
  • O fio é tão comprido que enrola a linha.
  • A cadeia contém um ponto e vírgula ou um carácter de barra inversa final.
  • A própria cadeia é uma cadeia entre aspas.

O analisador INF do sistema descarta o par mais externo de caracteres de aspas duplas que delimitam tal cadeia, juntamente com quaisquer caracteres de espaço branco inicial ou final fora dos delimitadores da cadeia de aspas duplas.

Remarks

Como o parser INF do sistema remove o par mais externo de aspas duplas de qualquer "string aspas" que defina um token % %strkey , muitos ficheiros INF do sistema definem todos os tokens %strkey% como "strings aspas" para evitar a perda não intencional de espaços em branco iniciais e finais durante a análise INF. O uso de "strings aspas" também garante que valores de string especialmente longos que cruzam linhas não possam ser truncados, e que strings com barras finais não possam ser concatenadas para a linha seguinte no ficheiro INF.

Para criar um único ficheiro INF internacional, um INF pode ter um conjunto de Strings específicas para cada localidade.Seções LanguageID, conforme mostrado na declaração de sintaxe formal. A extensão LanguageID é um valor hexadecimal de 4 dígitos (sem um "0x" inicial) que é definido da seguinte forma:

  • Os 10 bits inferiores contêm o ID principal da linguagem e os 6 bits seguintes contêm o ID da sublinguagem, conforme especificado pela macro MAKELANGID definida em Winnt.h.
  • Os IDs da linguagem e das sublinguagens devem corresponder aos valores definidos pelo sistema das constantes Win32 LANG_XXX e SUBLANG_XXX definidas no Winnt.h.

Por exemplo, um valor LanguageID de 0407 representa um ID de língua primária de LANG_GERMAN (07) com um ID de sublíngua de SUBLANG_GERMAN (01), como no seguinte exemplo:

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

Um ficheiro INF pode conter apenas uma secção Strings, juntamente com uma secção Strings.Secção LanguageID para cada valor LanguageID.

Windows seleciona uma única secção de Strings que é usada para traduzir todos os tokens %strkey% da instalação. Dependendo da localização atual de um determinado computador, o Windows seleciona uma secção de Strings da seguinte forma:

  1. O Windows procura primeiro os valores . LanguageID no INF que correspondem à localização atual atribuída ao computador. Se for encontrada uma correspondência exata, Windows usa essas Strings.LanguageID Secção INF para traduzir todos os tokens %strkey% definidos dentro do INF.

    É preciso duplicar todos os tokens de string em todas as secções.* Mesmo as constantes numéricas/fixas que não precisam de ser localizadas.

  2. Caso contrário, Windows procura de seguida uma correspondência com o valor LANG_XXX com o valor de SUBLANG_NEUTRAL como SUBLANG_XXX. Se tal correspondência for encontrada, Windows usa essa secção INF para traduzir todos os tokens %strkey% definidos dentro do INF.

  3. Caso contrário, Windows procura a próxima correspondência com o valor LANG_XXX e qualquer SUBLANG_XXX válido para a mesma família LANG_XXX. Se for encontrada tal correspondência parcial, use essa Strings.LanguageID Secção INF para traduzir todos os tokens %strkey% definidos dentro do INF.

  4. Caso contrário, Windows usa a secção Strings sem decoração para traduzir todos os tokens %strkey% definidos dentro do INF.

Por convenção, e para facilitar a criação de um conjunto de ficheiros INF para o mercado internacional, as secções de Strings são as últimas em todos os ficheiros INF do sistema. Usar %strkey% tokens para todos os valores de strings visíveis pelo utilizador dentro de um INF, e colocá-los em secções de Strings por localidade, simplifica a tradução dessas strings. Para mais informações sobre ficheiros INF específicos por localidade, consulte Criação de Ficheiros INF Internacionais.

Embora as secções Strings sejam as últimas secções em cada ficheiro INF, qualquer token %% strkey especificado numa secção Strings pode ser usado repetidamente noutros locais do INF, em particular, sempre que seja necessário o valor traduzido desse token. As funções do SetupAPI expandem cada %strkey% token para a string especificada e depois usam esse valor expandido para processamento INF adicional.

A utilização de tokens %strkey% dentro de ficheiros INF não se restringe a valores de string visíveis pelo utilizador. Estes tokens podem ser usados de qualquer forma conveniente para o autor do INF, desde que cada token esteja definido numa secção de Strings . Por exemplo, quando escreve um ficheiro INF que requer a especificação de vários GUIDs, pode ser conveniente criar um token% %strkey para cada GUID, usando um nome significativo como substituto para cada valor GUID.

Especificar um conjunto de % valores strkey% = "{GUID}" na secção Strings do ficheiro INF exige que digite cada valor GUID explícito apenas uma vez. Isto pode ajudar a fornecer documentação interna INF mais legível do que usar valores GUID explícitos ao longo do ficheiro INF.

Todos %tokens strkey% devem ser definidos dentro do ficheiro INF onde são referenciados. Portanto, para qualquer ficheiro INF que tenha entradas Include e Needs , um INF incluído deve ter a sua própria secção Strings para definir todos os tokens %strkey% referenciados nesse INF.

Numa secção de Strings INF, o comprimento máximo, em caracteres, de uma cadeia de substituição, incluindo um carácter NULL que termina, é 4096 (Windows Vista e versões posteriores do Windows) e 512 (Windows Server 2003, Windows XP e Windows 2000). Após a substituição de cadeias, o comprimento máximo, em caracteres, de uma cadeia de ficheiro INF é 4096, incluindo um carácter NULL terminante.

Examples

O exemplo seguinte mostra um fragmento de uma secção de Strings de um dvd.inf específico de local fornecido pelo sistema para instalações em países/regiões de língua inglesa.

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

O exemplo seguinte mostra a concatenação de strings.

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

Ver também

DDInstall

DDInstall. CoInstaladores

DDInstall. HW

DDInstall. Interfaces

DDInstall. Serviços

Fabricante

InterfaceInstall32

Modelos

FonteDiscosNomes

Versão