Accès sécurisé aux clés de Registre
Les problèmes des clients ont souvent été suivis de composants externes, tels que des applications d’installation d’appareils tierces, qui effectuent les opérations suivantes :
Supprimez les clés de Registre critiques.
Modifiez les autorisations d’accès des clés de Registre critiques.
La plupart des problèmes rencontrés avec les composants externes sont dus à l’utilisation de l’autorisation d’accès KEY_ALL_ACCESS pour les clés de Registre. À compter de Windows Server 2003, SetupDiCreateDevRegKey accorde uniquement KEY_READ et KEY_WRITE autorisations d’accès, et non KEY_ALL_ACCESS. À compter de Windows Vista, des restrictions de KEY_ALL_ACCESS supplémentaires sont appliquées.
Suivez ces instructions pour accéder en toute sécurité aux clés de Registre :
Utilisez uniquement setupAPI, les fonctions de gestionnaire de configuration et les autres API associées aux appareils prises en charge pour ouvrir les clés de Registre des appareils, en particulier les clés matérielles et les clés logicielles d’un appareil.
Ces fonctions résolvent les problèmes courants qui résultent des restrictions sur les autorisations d’accès.
L’emplacement et le format des clés de Registre peuvent changer d’une version à l’autre de Windows. N’effectuez pas d’hypothèses sur l’emplacement, le format ou la signification des clés de Registre ou des valeurs utilisées pour l’installation du périphérique et du pilote.
Pour plus d’informations sur les clés et les arborescences de Registre, consultez Arborescences et clés de registre pour les périphériques et les pilotes.
N’utilisez pas le Registre pour accéder directement aux paramètres internes de l’appareil ou les modifier.
Demandez uniquement les autorisations d’accès minimales requises pour chaque tâche, par exemple :
KEY_SET_VALUE
KEY_CREATE_SUB_KEY
KEY_QUERY_VALUE
KEY_ENUMERATE_SUB_KEYS
N’ouvrez pas directement les clés de classe de configuration de l’appareil dans le Registre. Comme pour toute clé de Registre, l’emplacement et le nom des clés de classe d’installation de l’appareil peuvent changer d’une version de Windows à l’autre. Pour plus d’informations sur la façon d’accéder correctement à une clé de classe de configuration d’appareil, consultez Ouverture de clés de Registre pour une classe d’installation d’appareil
N’ouvrez pas directement les clés de classe d’interface d’appareil dans le Registre. Comme pour toute clé de Registre, l’emplacement et le nom des clés de classe d’interface d’appareil peuvent changer d’une version de Windows à l’autre.
Pour ouvrir des clés de classe d’interface d’appareil en toute sécurité, utilisez CM_Open_Class_Key avec la définition CM_OPEN_CLASS_KEY_INTERFACE dans le paramètre ulFlags ou utilisez SetupDiOpenClassRegKeyEx et définissez DIOCR_INSTALLER dans le paramètre Flags .
Utilisez uniquement les directives INF pour modifier les clés de Registre réservées au système d’exploitation. Pour plus d’informations, consultez Résumé des directives INF.
Les programmes d’installation de classes et les co-programmes d’installation ne peuvent pas appeler des fonctions de Registre pour créer, modifier ou supprimer des valeurs de Registre qui sont réservées au système d’exploitation.
Pour plus d’informations sur les autorisations d’accès des clés de Registre, consultez Sécurité de la clé de Registre et droits d’accès.