Funzione RegOpenKeyTransactedA (winreg.h)
Apre la chiave del Registro di sistema specificata e la associa a una transazione. Si noti che i nomi delle chiavi non fanno distinzione tra maiuscole e minuscole.
Sintassi
LSTATUS RegOpenKeyTransactedA(
[in] HKEY hKey,
[in, optional] LPCSTR lpSubKey,
[in] DWORD ulOptions,
[in] REGSAM samDesired,
[out] PHKEY phkResult,
[in] HANDLE hTransaction,
PVOID pExtendedParemeter
);
Parametri
[in] hKey
Handle per una chiave del Registro di sistema aperta. Questo handle viene restituito dal RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyExo funzione RegOpenKeyTransacted. Può anche essere una delle chiavi predefinite seguenti:
HKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERS
[in, optional] lpSubKey
Nome della sottochiave del Registro di sistema da aprire.
I nomi delle chiavi non fanno distinzione tra maiuscole e minuscole.
Se il parametro lpSubKey è NULL o un puntatore a una stringa vuota e se hKey è una chiave predefinita, il sistema aggiorna la chiave predefinita e phkResult riceve lo stesso handle hKey passato alla funzione. In caso contrario, phkResult riceve un nuovo handle per la chiave aperta.
Per altre informazioni, vedere Limiti delle dimensioni degli elementi del Registro di sistema .
[in] ulOptions
Questo parametro è riservato e deve essere zero.
[in] samDesired
Maschera che specifica i diritti di accesso desiderati per la chiave. La funzione ha esito negativo se il descrittore di sicurezza della chiave non consente l'accesso richiesto per il processo chiamante. Per altre informazioni, vedere sicurezza delle chiavi del Registro di sistema e diritti di accesso.
[out] phkResult
Puntatore a una variabile che riceve un handle per la chiave aperta. Se la chiave non è una delle chiavi predefinite del Registro di sistema, chiamare la funzione regCloseKey
[in] hTransaction
Handle di una transazione attiva. Questo handle viene restituito dalla funzione CreateTransaction.
pExtendedParemeter
Questo parametro è riservato e deve essere NULL.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è ERROR_SUCCESS.
Se la funzione ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in Winerror.h. È possibile usare la funzione FormatMessage
Osservazioni
Quando una chiave viene aperta usando questa funzione, vengono transazionate le operazioni successive sulla chiave. Se viene eseguita un'operazione non transazionale sulla chiave prima del commit della transazione, viene eseguito il rollback della transazione. Dopo aver eseguito il commit o il rollback di una transazione, è necessario riaprire la chiave usando la regCreateKeyTransacted
Si noti che le operazioni successive sulle sottochiavi di questa chiave non vengono transazionate automaticamente. Pertanto, la funzione RegDeleteKeyEx non esegue un'operazione di eliminazione transazionata. Usare invece la funzione regDeleteKeyTransacted
A differenza della funzione regCreateKeyTransacted
Se il servizio o l'applicazione rappresenta utenti diversi, non usare questa funzione con HKEY_CURRENT_USER. Chiamare invece la funzione RegOpenCurrentUser
Se la chiave restituita in phkResult è una chiave del Registro di sistema predefinita, non viene inclusa nella transazione specificata.
Una singola chiave del Registro di sistema può essere aperta solo 65.534 volte. Quando si tenta di eseguire il 65.535'operazione di apertura, questa funzione ha esito negativo con ERROR_NO_SYSTEM_RESOURCES.
Nota
L'intestazione winreg.h definisce RegOpenKeyTransacted come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows Vista [solo app desktop] |
server minimo supportato | Windows Server 2008 [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winreg.h (include Windows.h) |
libreria |
Advapi32.lib |
dll | Advapi32.dll |