DEVPROP_TYPE_STRING_INDIRECT

O identificador DEVPROP_TYPE_STRING_INDIRECT representa o identificador de tipo de dados base para uma cadeia de caracteres Unicode terminada por NULL que contém uma referência de cadeia de caracteres indireta.

Remarks

Uma referência de cadeia de caracteres indireta descreve um recurso de cadeia de caracteres que contém a cadeia de caracteres real. A referência de cadeia de caracteres indireta pode aparecer em um dos seguintes formatos:

@[caminho\]FileName,-ResourceID
Windows extrai a cadeia de caracteres do módulo especificado pelo caminho e entradas FileName, e o identificador de recurso da cadeia de caracteres é fornecido pela entrada ResourceID (excluindo o sinal de subtração necessário). O recurso de cadeia de caracteres é carregado da seção de recursos do módulo que melhor corresponde a um dos idiomas de interface do usuário preferenciais do chamador. A entrada de caminho é opcional. Se você especificar a entrada de caminho , o módulo deverá estar localizado em um diretório que esteja no caminho de pesquisa definido pelo sistema.

@ InfName,%strkey%
Windows extrai a cadeia de caracteres da seção cadeias de caracteres INF do arquivo INF no diretório %SystemRoot%\inf cujo nome é fornecido pela entrada InfName. O identificador de token strkey deve corresponder à chave de uma linha na seção Cadeias de Caracteres que melhor corresponde a uma das linguagens de interface do usuário preferidas do chamador. Se não existirem seções de Cadeias de Caracteres específicas do idioma, Windows usará a seção Cadeias de Caracteres padrão.

Não é possível combinar DEVPROP_TYPE_STRING_INDIRECT com nenhum dos modificadores de tipo de dados de propriedade.

Definindo uma propriedade desse tipo

Para definir uma propriedade cujo tipo de dados base é DEVPROP_TYPE_STRING_INDIRECT, chame a função de propriedade SetupDiSetXxx correspondente e defina os parâmetros de entrada da função da seguinte maneira:

  • Defina o parâmetro PropertyType como DEVPROP_TYPE_STRING_INDIRECT.

  • Defina o parâmetro PropertyBuffer como um ponteiro para um buffer que contém a cadeia de caracteres terminada por NULL que fornece uma referência de cadeia de caracteres indireta.

  • Defina o parâmetro PropertyBufferSize como o tamanho, em bytes, da cadeia de caracteres.

  • Defina os parâmetros de função restantes conforme apropriado para definir a propriedade.

Recuperando o valor desse tipo de propriedade

Quando um aplicativo chama uma função de propriedade SetupDiGetXxx para recuperar o valor de uma propriedade desse tipo de dados base, Windows tenta localizar a cadeia de caracteres real que a propriedade faz referência. Se Windows puder recuperar a cadeia de caracteres real, ela retornará a cadeia de caracteres real para o chamador e identificará o tipo de dados base da propriedade recuperada como DEVPROP_TYPE_STRING. Caso contrário, Windows retorna a referência de cadeia de caracteres indireta e identifica o tipo de dados base da propriedade recuperada como DEVPROP_TYPE_STRING_INDIRECT.

Localizando texto estático

A partir do Windows Vista você pode localizar propriedades de texto estático PnP de tipo de cadeia de caracteres personalizadas e padrão usando recursos da cadeia de caracteres ou tabelas de recursos de uma imagem PE definindo tipos de propriedade de texto estático como DEVPROP_TYPE_STRING_INDIRECT. Você também pode adicionar dados de cadeia de caracteres de substituição não localizados que podem ser formatados no texto estático.

As cadeias de caracteres localizadas no recurso STRINGTABLE de uma imagem PE (como normalmente executado pelo LoadString) devem usar o seguinte formato:

"@"System32\mydll.dll,-21[; Fallback" String]"

"@System32\mydll.dll,-21[; Cadeia de caracteres de fallback com %1, %2, ... para %n[;( Arg1,Arg2,...,ArgN)]]"

Cadeias de caracteres localizadas no recurso de tabela de mensagens de uma imagem PE (como normalmente executado por RtlFindMessage, mais comumente usado em drivers) devem usar o seguinte formato:

"@System32\drivers\mydriver.sys,#21[; Cadeia de caracteres de fallback]"

"@System32\drivers\mydriver.sys,#21[; Cadeia de caracteres de fallback com %1, %2, ... para %n[;( Arg1,Arg2,...,ArgN)]]"

Uma "Cadeia de Caracteres de Fallback" é opcional, mas útil porque pode ser retornada se o recurso não puder ser encontrado ou carregado. A cadeia de caracteres de fallback também é retornada para processos de sistema não interativos que não estão representando um usuário e, como tal, não podem mostrar texto localizado para os usuários de qualquer maneira.

Essa técnica permite que você localize o texto estático extraído da cadeia de caracteres ou do recurso de tabela de mensagens que melhor corresponde à localidade do chamador.

Windows formatará os argumentos à direita na cadeia de caracteres (ou na cadeia de caracteres de fallback) quando forem recuperados da respectiva tabela de recursos, da mesma maneira que RtlFormatMessage.

O texto estático PnP do tipo de cadeia de caracteres personalizado e padrão é localizado quando você define a propriedade carregando o recurso do componente executando a operação de conjunto, o que normalmente acontece na localidade padrão do sistema para componentes no nível do sistema.

Observação: as imagens PE podem usar o tipo de tabela de recursos (recursos STRINGTABLE ou recursos de tabela de mensagens).

Requirements

Version

Windows Vista e versões posteriores do Windows.

Header

Devpropdef.h (inclua Devpropdef.h)

Consulte também

DEVPROP_TYPE_STRING