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é 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 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_USERSHKEY_LOCAL_MACHINE HKEY_CURRENT_USER

[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 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é de la clé de Registre et droits d’accès.

[out] phkResult

Pointeur vers une variable qui reçoit un handle pour la clé ouverte. Si la clé ne fait pas partie 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 pour une transaction active. Ce handle est retourné par la fonction CreateTransaction .

pExtendedParemeter

Ce paramètre est réservé et doit être 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 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 fonction RegCreateKeyTransacted ou 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 traitées automatiquement. 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 transactionné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. Appelez plutôt 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. Lorsque vous tentez 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 en tant qu’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. La combinaison 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

   
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 de Registre

Vue d’ensemble du Registre