Fonction RegOpenKeyTransactedA (winreg.h)

Ouvre la clé de Registre spécifiée et l’associe à une transaction. Notez que les noms de clés ne respectent pas la casse.

Syntaxe

LSTATUS RegOpenKeyTransactedA(
  [in]           HKEY   hKey,
  [in, optional] LPCSTR lpSubKey,
  [in]           DWORD  ulOptions,
  [in]           REGSAM samDesired,
  [out]          PHKEY  phkResult,
  [in]           HANDLE hTransaction,
                 PVOID  pExtendedParemeter
);

Paramètres

[in] hKey

Handle d’une clé de Registre ouverte. Ce handle est retourné par la fonction RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx ou RegOpenKeyTransacted . Il peut également s’agir de l’une des clés prédéfinies suivantes :

HKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERS

[in, optional] lpSubKey

Nom de la sous-clé de Registre à ouvrir.

Les noms de clés ne respectent pas la casse.

Si le paramètre lpSubKey a la valeur NULL ou un pointeur vers une chaîne vide, et si hKey est une clé prédéfinie, le système actualise la clé prédéfinie et phkResult reçoit le même handle hKey passé dans la fonction. Sinon, phkResult reçoit un nouveau handle pour la clé ouverte.

Pour plus d’informations, consultez Limites de taille des éléments du Registre.

[in] ulOptions

Ce paramètre est réservé et doit être égal à zéro.

[in] samDesired

Masque qui spécifie les droits d’accès souhaités à la clé. La fonction échoue si le descripteur de sécurité de la clé n’autorise pas l’accès demandé pour le processus appelant. Pour plus d’informations, consultez Sécurité de la clé de Registre et droits d’accès.

[out] phkResult

Pointeur vers une variable qui reçoit un handle vers la clé ouverte. 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.

[in] hTransaction

Handle d’une transaction active. Ce handle est retourné par la fonction CreateTransaction .

pExtendedParemeter

Ce paramètre est réservé et doit avoir la valeur NULL.

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

Lorsqu’une clé est ouverte à l’aide de cette fonction, les opérations suivantes sur la clé sont traitées. Si une opération non transactionnée est effectuée sur la clé avant la validation de la transaction, la transaction est restaurée. Une fois qu’une transaction a été validée ou restaurée, vous devez rouvrir la clé à l’aide de la fonction RegCreateKeyTransacted ou RegOpenKeyTransacted avec un handle de transaction actif pour effectuer des opérations supplémentaires. Pour plus d’informations sur les transactions, consultez Kernel Transaction Manager.

Notez que les opérations suivantes sur les sous-clés de cette clé ne sont pas traitées automatiquement. Par conséquent, la fonction RegDeleteKeyEx n’effectue pas d’opération de suppression traitée. Au lieu de cela, utilisez la fonction RegDeleteKeyTransacted pour effectuer une opération de suppression traitée.

Contrairement à la fonction RegCreateKeyTransacted , la fonction RegOpenKeyTransacted ne crée pas la clé spécifiée si la clé n’existe pas dans le Registre.

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 .

Si la clé retournée dans phkResult est une clé de Registre prédéfinie, elle n’est pas incluse dans la transaction fournie.

Une seule clé de Registre ne peut être ouverte que 65 534 fois. Lors de la tentative de la 65 535e opération d’ouverture, cette fonction échoue avec ERROR_NO_SYSTEM_RESOURCES.

Notes

L’en-tête winreg.h définit RegOpenKeyTransacted 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 Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [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

RegCreateKeyTransacted

RegDeleteKeyTransacted

Fonctions du Registre

Vue d’ensemble du Registre