Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Remarks
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:
@[ruta de acceso\]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 de interfaz de usuario preferidos 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 \inf %SystemRoot%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 de interfaz de usuario preferidos del autor de la llamada. Si no existen secciones de cadenas específicas del lenguaje, 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 sea DEVPROP_TYPE_STRING_INDIRECT, llame a la función de propiedad SetupDiSetXxx correspondiente y establezca los parámetros de entrada de 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 contenga 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.
Localizar texto estático
A partir de Windows Vista puede localizar propiedades de texto estático PnP personalizadas y estándar de tipo cadena mediante recursos de las tablas de recursos o cadenas 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 puedan 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, ... para %n[;( Arg1,Arg2,...,ArgN)]]"
Las cadenas ubicadas en el recurso de tabla de mensajes de una imagen PE (como suele realizarse con RtlFindMessage, que se usa con más frecuencia en los controladores) deben usar el siguiente formato:
"@System32\drivers\mydriver.sys,#21[; Cadena de reserva]"
"@System32\drivers\mydriver.sys,#21[; Cadena de reserva con %1, %2, ... para %n[;( Arg1,Arg2,...,ArgN)]]"
Una "Cadena de reserva" es opcional pero útil porque se puede devolver si el recurso no se encuentra o se carga. La cadena de reserva también se devuelve a procesos del sistema no interactivos que no suplantan a un usuario y, como tal, no puede mostrar texto localizado a los usuarios de todos modos.
Esta técnica le permite localizar 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 conjunto, 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).
Requirements
Version |
Windows Vista y versiones posteriores de Windows. |
Encabezado |
Devpropdef.h (incluya Devpropdef.h) |