Partager via


Fonction RegCreateKeyA (winreg.h)

Crée la clé de Registre spécifiée. Si la clé existe déjà dans le Registre, la fonction l’ouvre.

Note Cette fonction est fournie uniquement pour la compatibilité avec les versions 16 bits de Windows. Les applications doivent utiliser la fonction RegCreateKeyEx . Toutefois, les applications qui sauvegardent ou restaurent l’état du système, y compris les fichiers système et les ruches du Registre, doivent utiliser le service de cliché instantané de volume au lieu des fonctions du Registre.
 

Syntaxe

LSTATUS RegCreateKeyA(
  [in]           HKEY   hKey,
  [in, optional] LPCSTR lpSubKey,
  [out]          PHKEY  phkResult
);

Paramètres

[in] hKey

Handle d’une clé de Registre ouverte. Le processus appelant doit avoir KEY_CREATE_SUB_KEY accès à la clé. Pour plus d’informations, consultez Sécurité de la clé de Registre et droits d’accès.

L’accès pour la création de clé est vérifié par rapport au descripteur de sécurité de la clé de Registre, et non au masque d’accès spécifié lors de l’obtention du handle. Par conséquent, même si hKey a été ouvert avec un samDesired de KEY_READ, elle peut être utilisée dans les opérations qui créent des clés si son descripteur de sécurité l’autorise.

Ce handle est retourné par la fonction RegCreateKeyEx ou RegOpenKeyEx , ou il peut s’agir de l’une des clés prédéfinies suivantes :

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

[in, optional] lpSubKey

Nom d’une clé que cette fonction ouvre ou crée. Cette clé doit être une sous-clé de la clé identifiée par le paramètre hKey .

Pour plus d’informations sur les noms de clés, consultez Structure du Registre.

Si hKey est l’une des clés prédéfinies, lpSubKey peut avoir la valeur NULL. Dans ce cas, phkResult reçoit le même handle hKey passé à la fonction.

[out] phkResult

Pointeur vers une variable qui reçoit un handle vers la clé ouverte ou créée. Si la clé n’est pas l’une des clés de Registre prédéfinies, appelez la fonction RegCloseKey une fois que vous avez terminé d’utiliser le handle.

Valeur retournée

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 FORMAT_MESSAGE_FROM_SYSTEM pour obtenir une description générique de l’erreur.

Remarques

Une application ne peut pas créer une clé qui est un enfant direct de HKEY_USERS ou HKEY_LOCAL_MACHINE. Une application peut créer des sous-clés dans les niveaux inférieurs des arborescences HKEY_USERS ou HKEY_LOCAL_MACHINE .

Si votre service ou votre application emprunte l’identité de différents utilisateurs, n’utilisez pas cette fonction avec HKEY_CURRENT_USER. Au lieu de cela, appelez la fonction RegOpenCurrentUser .

La fonction RegCreateKey crée toutes les clés manquantes dans le chemin spécifié. Une application peut tirer parti de ce comportement pour créer plusieurs clés à la fois. Par exemple, une application peut créer une sous-clé à quatre niveaux de profondeur en même temps que les trois sous-clés précédentes en spécifiant une chaîne au format suivant pour le paramètre lpSubKey :

subkey1\subkey2\subkey3\subkey4

Notez que ce comportement entraîne la création de clés indésirables si une clé existante dans le chemin d’accès est mal orthographiée.

Notes

L’en-tête winreg.h définit RegCreateKey comme un 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winreg.h (inclure Windows.h)
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

RegCloseKey

RegCreateKeyEx

RegDeleteKey

RegOpenKeyEx

Fonctions du Registre

Vue d’ensemble du Registre