Compartir a través de


DEVPROP_TYPE_STRING_INDIRECT

El identificador de DEVPROP_TYPE_STRING_INDIRECT representa el identificador de tipo de datos base para una cadena Unicode terminada en NULL que contiene una referencia de cadena indirecta.

Observaciones

Una referencia de cadena indirecta describe un recurso de cadena que contiene la cadena real. La referencia de cadena indirecta puede aparecer en uno de los siguientes formatos:

@[path\] FileName,-ResourceID
Windows extrae la cadena del módulo especificado por las entradas path y FileName , y el identificador de recurso de la cadena lo proporciona la entrada ResourceID (excepto el signo menos necesario). El recurso de cadena se carga desde la sección de recursos del módulo que mejor coincide con uno de los idiomas preferidos de la interfaz de usuario del autor de la llamada. La entrada de ruta de acceso es opcional. Si especifica la entrada de ruta de acceso , el módulo debe encontrarse en un directorio que se encuentre en la ruta de acceso de búsqueda definida por el sistema.

@ InfName,%strkey%
Windows extrae la cadena de la sección Cadenas INF del archivo INF en el directorio %SystemRoot%\inf cuyo nombre proporciona la entrada InfName . El identificador de token de strkey debe coincidir con la clave de una línea de la sección Cadenas que mejor coincida con uno de los idiomas preferidos de la interfaz de usuario del autor de la llamada. Si no existen secciones de cadenas específicas del idioma, Windows usa la sección Cadenas predeterminada.

No se puede combinar DEVPROP_TYPE_STRING_INDIRECT con ninguno de los modificadores property-data-type.

Establecer una propiedad de este tipo

Para establecer una propiedad cuyo tipo de datos base es DEVPROP_TYPE_STRING_INDIRECT, llame a la función de propiedad SetupDiSetXxx correspondiente y establezca los parámetros de entrada de la función de la siguiente manera:

  • Establezca el parámetro PropertyType en DEVPROP_TYPE_STRING_INDIRECT.

  • Establezca el parámetro PropertyBuffer en un puntero a un búfer que contiene la cadena terminada en NULL que proporciona una referencia de cadena indirecta.

  • Establezca el parámetro PropertyBufferSize en el tamaño, en bytes, de la cadena.

  • Establezca los parámetros de función restantes según corresponda para establecer la propiedad .

Recuperar el valor de este tipo de propiedad

Cuando una aplicación llama a una función de propiedad SetupDiGetXxx para recuperar el valor de una propiedad de este tipo de datos base, Windows intenta localizar la cadena real a la que hace referencia la propiedad. Si Windows puede recuperar la cadena real, devuelve la cadena real al autor de la llamada e identifica el tipo de datos base de la propiedad recuperada como DEVPROP_TYPE_STRING. De lo contrario, Windows devuelve la referencia de cadena indirecta e identifica el tipo de datos base de la propiedad recuperada como DEVPROP_TYPE_STRING_INDIRECT.

Localización de texto estático

A partir de Windows Vista, puede localizar las propiedades de texto estático PnP de tipo cadena personalizada y estándar mediante recursos de la cadena o las tablas de recursos de una imagen PE estableciendo tipos de propiedades de texto estático en DEVPROP_TYPE_STRING_INDIRECT. También puede agregar datos de cadena de reemplazo no localizados que se pueden dar formato al texto estático.

Las cadenas ubicadas en el recurso STRINGTABLE de una imagen PE (como normalmente realiza LoadString) deben usar el siguiente formato:

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

"@System32\mydll.dll,-21[; Cadena de reserva con %1, %2, ... to %n[;(Arg1,Arg2,...,ArgN)]]"

Las cadenas ubicadas en el recurso message-table de una imagen PE (como suele realizarse por RtlFindMessage, que se usa con más frecuencia en los controladores) deben usar el formato siguiente:

"@System32\drivers\mydriver.sys,#21[; Cadena de reserva]"

"@System32\drivers\mydriver.sys,#21[; Cadena de reserva con %1, %2, ... to %n[;(Arg1,Arg2,...,ArgN)]]"

Una "cadena de reserva" es opcional pero útil porque se puede devolver si el recurso no se encuentra ni se carga. La cadena de reserva también se devuelve a los procesos del sistema no interactivos que no suplantan a un usuario y, como tal, no pueden mostrar texto localizado a los usuarios de todos modos.

Esta técnica permite localizar el texto estático extraído del recurso de tabla de cadenas o mensajes que mejor coincida con la configuración regional del autor de la llamada.

Windows dará formato a los argumentos finales en la cadena (o la cadena de reserva) cuando se recuperen de la tabla de recursos correspondiente, de la misma manera que RtlFormatMessage.

El texto estático PnP personalizado y estándar de tipo cadena se localiza cuando se establece la propiedad cargando el recurso desde el componente que realiza la operación de establecimiento, lo que suele ocurrir en la configuración regional predeterminada del sistema para los componentes de nivel de sistema.

Nota: Las imágenes pe pueden usar cualquier tipo de tabla de recursos (recursos STRINGTABLE o recursos de tabla de mensajes).

Requisitos

Versión

Windows Vista y versiones posteriores de Windows.

Encabezado

Devpropdef.h (include Devpropdef.h)

Consulte también

DEVPROP_TYPE_STRING