Partager via


RegLoadAppKeyW, fonction (winreg.h)

Charge la ruche de Registre spécifiée en tant que ruche d’application.

Syntaxe

LSTATUS RegLoadAppKeyW(
  [in]  LPCWSTR lpFile,
  [out] PHKEY   phkResult,
  [in]  REGSAM  samDesired,
  [in]  DWORD   dwOptions,
        DWORD   Reserved
);

Paramètres

[in] lpFile

Nom du fichier hive. Cette ruche doit avoir été créée avec la fonction RegSaveKey ou Fonction RegSaveKeyEx. Si le fichier n’existe pas, un fichier hive vide est créé avec le nom spécifié.

[out] phkResult

Pointeur vers le handle de la clé racine de la ruche chargée.

La seule façon d’accéder aux clés dans la ruche est de passer par ce handle. Le Registre empêche une application d’accéder aux clés de cette ruche à l’aide d’un chemin absolu vers la clé. Par conséquent, il n’est pas possible d’accéder à cette ruche via l’espace de noms du Registre.

[in] samDesired

Masque qui spécifie les droits d’accès demandés pour la clé racine retournée. Pour plus d’informations, consultez sécurité des clés de Registre et droits d’accès.

[in] dwOptions

Si ce paramètre est REG_PROCESS_APPKEY, la ruche ne peut pas être chargée à nouveau pendant son chargement par l’appelant. Cela empêche l’accès à cette ruche de Registre par un autre appelant.

Reserved

Ce paramètre est réservé.

Valeur de retour

Si la fonction réussit, la valeur de retour est ERROR_SUCCESS.

Si la fonction échoue, la valeur de retour est un code d’erreur différent de zéro défini dans Winerror.h. Vous pouvez utiliser la fonction FormatMessage avec l’indicateur de FORMAT_MESSAGE_FROM_SYSTEM pour obtenir une description générique de l’erreur.

Remarques

Contrairement à RegLoadKey, RegLoadAppKey ne charge pas la ruche sous HKEY_LOCAL_MACHINE ou HKEY_USERS. Au lieu de cela, la ruche est chargée sous une racine spéciale qui ne peut pas être énumérée. Par conséquent, il n’existe aucun moyen d’énumérer les ruches actuellement chargées par RegLoadAppKey. Toutes les opérations sur les ruches chargées par RegLoadAppKey doivent être effectuées par rapport au handle retourné dans phkResult.

Si deux processus sont nécessaires pour effectuer des opérations sur la même ruche, chaque processus doit appeler RegLoadAppKey pour récupérer un handle. Pendant l’opération RegLoadAppKey, le Registre vérifie si le fichier a déjà été chargé. S’il a été chargé, le Registre retourne un handle à la ruche précédemment chargée au lieu de recharger la ruche.

Toutes les clés à l’intérieur de la ruche doivent avoir le même descripteur de sécurité, sinon la fonction échouera. Ce descripteur de sécurité doit accorder à l’appelant l’accès spécifié par le paramètre samDesired ou la fonction échoue. Vous ne pouvez pas utiliser la fonction RegSetKeySecurity sur n’importe quelle clé à l’intérieur de la ruche.

Dans Windows 8 et versions ultérieures, chaque processus peut appeler regLoadAppKey pour charger plusieurs ruches. Dans Windows 7 et versions antérieures, chaque processus ne peut charger qu’une seule ruche à l’aide de RegLoadAppKey à la fois.

Toute ruche chargée à l’aide de RegLoadAppKey est automatiquement déchargée lorsque toutes les poignées des clés à l’intérieur de la ruche sont fermées à l’aide de RegCloseKey.

Pour compiler une application qui utilise cette fonction, définissez _WIN32_WINNT en tant que 0x0600 ou version ultérieure. Pour plus d’informations, consultez Utilisation des en-têtes Windows.

Note

L’en-tête winreg.h définit RegLoadAppKey comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2008 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête winreg.h (inclure Windows.h)
bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

RegSaveKey

fonctions de Registre

Registre Hive