Funzione RegLoadAppKeyA (winreg.h)

Carica l'hive del Registro di sistema specificato come hive dell'applicazione.

Sintassi

LSTATUS RegLoadAppKeyA(
  [in]  LPCSTR lpFile,
  [out] PHKEY  phkResult,
  [in]  REGSAM samDesired,
  [in]  DWORD  dwOptions,
        DWORD  Reserved
);

Parametri

[in] lpFile

Nome del file hive. Questo hive deve essere stato creato con la funzione RegSaveKey o RegSaveKeyEx . Se il file non esiste, viene creato un file hive vuoto con il nome specificato.

[out] phkResult

Puntatore all'handle per la chiave radice dell'hive caricato.

L'unico modo per accedere alle chiavi nell'hive è tramite questo handle. Il Registro di sistema impedisce a un'applicazione di accedere alle chiavi in questo hive usando un percorso assoluto della chiave. Di conseguenza, non è possibile passare a questo hive tramite lo spazio dei nomi del Registro di sistema.

[in] samDesired

Maschera che specifica i diritti di accesso richiesti per la chiave radice restituita. Per altre informazioni, vedere Sicurezza delle chiavi del Registro di sistema e diritti di accesso.

[in] dwOptions

Se questo parametro è REG_PROCESS_APPKEY, l'hive non può essere caricato di nuovo mentre viene caricato dal chiamante. Ciò impedisce l'accesso a questo hive del Registro di sistema da un altro chiamante.

Reserved

Questo parametro è riservato.

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 con il flag FORMAT_MESSAGE_FROM_SYSTEM per ottenere una descrizione generica dell'errore.

Commenti

A differenza di RegLoadKey, RegLoadAppKey non carica l'hive in HKEY_LOCAL_MACHINE o HKEY_USERS. L'hive viene invece caricato in una radice speciale che non può essere enumerata. Di conseguenza, non è possibile enumerare hives attualmente caricati da RegLoadAppKey. Tutte le operazioni sui hives caricate da RegLoadAppKey devono essere eseguite in relazione all'handle restituito in phkResult.

Se sono necessari due processi per eseguire operazioni sullo stesso hive, ogni processo deve chiamare RegLoadAppKey per recuperare un handle. Durante l'operazione RegLoadAppKey , il Registro di sistema verificherà se il file è già stato caricato. Se è stato caricato, il Registro di sistema restituirà un handle all'hive caricato in precedenza anziché ricaricare l'hive.

Tutte le chiavi all'interno dell'hive devono avere lo stesso descrittore di sicurezza, altrimenti la funzione avrà esito negativo. Questo descrittore di sicurezza deve concedere al chiamante l'accesso specificato dal parametro samDesired o la funzione avrà esito negativo. Non è possibile usare la funzione RegSetKeySecurity in qualsiasi chiave all'interno dell'hive.

In Windows 8 e versioni successive ogni processo può chiamare RegLoadAppKey per caricare più hive. In Windows 7 e versioni precedenti ogni processo può caricare solo un hive usando RegLoadAppKey alla volta.

Qualsiasi hive caricato con RegLoadAppKey viene scaricato automaticamente quando tutti gli handle nelle chiavi all'interno dell'hive vengono chiusi usando RegCloseKey.

Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0600 o versioni successive. Per altre informazioni, vedere Uso delle intestazioni di Windows.

Nota

L'intestazione winreg.h definisce RegLoadAppKey come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winreg.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

Regsavekey

Funzioni del Registro di sistema

Hive del Registro di sistema