Condividi tramite


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 impedirà 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. In questo modo si 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.

Osservazioni

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 gli hive attualmente caricati da RegLoadAppKey. Tutte le operazioni su hive caricate da RegLoadAppKey devono essere eseguite rispetto 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 di 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. In caso contrario, la funzione avrà esito negativo. Questo descrittore di sicurezza deve concedere al chiamante l'accesso specificato dal parametro samDesired oppure 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 un solo hive usando RegLoadAppKey alla volta.

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

Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0600 o versione successiva. 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 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

Vedere anche

RegSaveKey

funzioni del Registro di sistema

Hive del Registro di sistema