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