Partager via


RegOpenKeyTransactedW, fonction (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 RegOpenKeyTransactedW(
  [in]           HKEY    hKey,
  [in, optional] LPCWSTR lpSubKey,
  [in]           DWORD   ulOptions,
  [in]           REGSAM  samDesired,
  [out]          PHKEY   phkResult,
  [in]           HANDLE  hTransaction,
                 PVOID   pExtendedParemeter
);

Paramètres

[in] hKey

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

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 est 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 à la clé ouverte.

Pour plus d’informations, consultez Limites de taille des éléments de 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é des clés 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 vers une transaction active. Ce handle est retourné par la fonction CreateTransaction.

pExtendedParemeter

Ce paramètre est réservé et doit être NULL.

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

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 transactionnelle est effectuée sur la clé avant la validation de la transaction, la transaction est restaurée. Une fois qu’une transaction est validée ou restaurée, vous devez rouvrir la clé à l’aide de la RegCreateKeyTransacted ou fonction RegOpenKeyTransacted avec un handle de transaction actif pour effectuer des opérations supplémentaires traitées. 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 automatiquement traitées. Par conséquent, la fonction RegDeleteKeyEx n’effectue pas d’opération de suppression transactionnelle. Utilisez plutôt la fonction RegDeleteKeyTransacted pour effectuer une opération de suppression transactionnelle.

Contrairement à la fonction RegCreateKeyTrans acted, 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 clé de Registre unique ne peut être ouverte que 65 534 fois. Lors de la tentative de 65 535ième opération d’ouverture, cette fonction échoue avec ERROR_NO_SYSTEM_RESOURCES.

Note

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

RegCloseKey

RegCreateKeyTransacted

RegDeleteKeyTransacted

fonctions de Registre

Vue d’ensemble du Registre