Partager via


DEVPROP_TYPE_STRING_INDIRECT

L’identificateur DEVPROP_TYPE_STRING_INDIRECT représente l’identificateur de type de données de base pour une chaîne Unicode terminée par NULL qui contient une référence de chaîne indirecte.

Notes

Une référence de chaîne indirecte décrit une ressource de chaîne qui contient la chaîne réelle. La référence de chaîne indirecte peut apparaître dans l’un des formats suivants :

@[chemin\] FileName,-ResourceID
Windows extrait la chaîne du module spécifié par les entrées path et FileName , et l’identificateur de ressource de la chaîne est fourni par l’entrée ResourceID (à l’exclusion du signe moins requis). La ressource de chaîne est chargée à partir de la section de ressource de module qui correspond le mieux à l’une des langues d’interface utilisateur préférées de l’appelant. L’entrée de chemin d’accès est facultative. Si vous spécifiez l’entrée de chemin d’accès , le module doit se trouver dans un répertoire qui se trouve dans le chemin de recherche défini par le système.

@ InfName,%strkey%
Windows extrait la chaîne de la section Inf Strings du fichier INF dans le répertoire %SystemRoot%\inf dont le nom est fourni par l’entrée InfName . L’identificateur de jeton strkey doit correspondre à la clé d’une ligne de la section Chaînes qui correspond le mieux à l’une des langues d’interface utilisateur préférées de l’appelant. S’il n’existe aucune section Chaîne spécifique au langage, Windows utilise la section Chaînes par défaut.

Vous ne pouvez pas combiner DEVPROP_TYPE_STRING_INDIRECT avec les modificateurs de type de données de propriété.

Définition d’une propriété de ce type

Pour définir une propriété dont le type de données de base est DEVPROP_TYPE_STRING_INDIRECT, appelez la fonction de propriété SetupDiSetXxx correspondante et définissez les paramètres d’entrée de la fonction comme suit :

  • Définissez le paramètre PropertyType sur DEVPROP_TYPE_STRING_INDIRECT.

  • Définissez le paramètre PropertyBuffer sur un pointeur vers une mémoire tampon qui contient la chaîne terminée par NULL qui fournit une référence de chaîne indirecte.

  • Définissez le paramètre PropertyBufferSize sur la taille, en octets, de la chaîne.

  • Définissez les paramètres de fonction restants comme il convient pour définir la propriété.

Récupération de la valeur de ce type de propriété

Lorsqu’une application appelle une fonction de propriété SetupDiGetXxx pour récupérer la valeur d’une propriété de ce type de données de base, Windows tente de localiser la chaîne réelle que la propriété référence. Si Windows peut récupérer la chaîne réelle, il retourne la chaîne réelle à l’appelant et identifie le type de données de base de la propriété récupérée comme DEVPROP_TYPE_STRING. Sinon, Windows retourne la référence de chaîne indirecte et identifie le type de données de base de la propriété récupérée comme DEVPROP_TYPE_STRING_INDIRECT.

Localisation du texte statique

À partir de Windows Vista, vous pouvez localiser des propriétés de texte statique PnP de type chaîne personnalisée et standard à l’aide de ressources provenant de chaînes ou de tables de ressources d’une image PE en définissant les types de propriétés texte statique sur DEVPROP_TYPE_STRING_INDIRECT. Vous pouvez également ajouter des données de chaîne de remplacement non localisées qui peuvent être mises en forme dans le texte statique.

Les chaînes situées dans la ressource STRINGTABLE d’une image PE (comme généralement effectuée par LoadString) doivent utiliser le format suivant :

« @"System32\mydll.dll,-21[; Secours » String] »

« @System32\mydll.dll,-21[; Chaîne de secours avec %1, %2, ... à %n[;(Arg1,Arg2,...,ArgN)]] »

Les chaînes situées dans la ressource de table de message d’une image PE (comme généralement effectué par RtlFindMessage, plus couramment utilisé dans les pilotes) doivent utiliser le format suivant :

« @System32\drivers\mydriver.sys,#21[; Chaîne de secours] »

« @System32\drivers\mydriver.sys,#21[; Chaîne de secours avec %1, %2, ... à %n[;(Arg1,Arg2,...,ArgN)]] »

Une « chaîne de secours » est facultative, mais utile, car elle peut être retournée si la ressource est introuvable ou chargée. La chaîne de secours est également retournée aux processus système non interactifs qui n’empruntent pas l’identité d’un utilisateur et, par conséquent, ne peuvent pas afficher de texte localisé aux utilisateurs.

Cette technique vous permet de localiser le texte statique extrait de la ressource de chaîne ou de table de messages qui correspond le mieux aux paramètres régionaux de l’appelant.

Windows met en forme les arguments de fin dans la chaîne (ou la chaîne de secours) lorsqu’ils sont récupérés à partir de la table de ressources correspondante, de la même manière que RtlFormatMessage.

Le texte statique PnP de type de chaîne personnalisé et standard est localisé lorsque vous définissez la propriété en chargeant la ressource à partir du composant effectuant l’opération set, ce qui se produit généralement sous les paramètres régionaux par défaut du système pour les composants au niveau système.

Remarque : les images PE peuvent utiliser le type de table de ressources (ressources STRINGTABLE ou ressources de table de messages).

Spécifications

Version

Windows Vista et versions ultérieures de Windows.

En-tête

Devpropdef.h (inclure Devpropdef.h)

Voir aussi

DEVPROP_TYPE_STRING