Condividi tramite


Funzione RegCreateKeyA (winreg.h)

Crea la chiave del Registro di sistema specificata. Se la chiave esiste già nel Registro di sistema, la funzione lo apre.

Nota Questa funzione viene fornita solo per la compatibilità con le versioni a 16 bit di Windows. Le applicazioni devono usare la funzione RegCreateKeyEx . Tuttavia, le applicazioni che esegue il backup o il ripristino dello stato del sistema, inclusi i file di sistema e gli hives del Registro di sistema, devono usare il servizio Copia shadow del volume anziché le funzioni del Registro di sistema.
 

Sintassi

LSTATUS RegCreateKeyA(
  [in]           HKEY   hKey,
  [in, optional] LPCSTR lpSubKey,
  [out]          PHKEY  phkResult
);

Parametri

[in] hKey

Handle per una chiave del Registro di sistema aperta. Il processo di chiamata deve avere KEY_CREATE_SUB_KEY accesso alla chiave. Per altre informazioni, vedere Sicurezza delle chiavi del Registro di sistema e diritti di accesso.

L'accesso per la creazione della chiave viene controllato con il descrittore di sicurezza della chiave del Registro di sistema, non la maschera di accesso specificata quando è stato ottenuto l'handle. Pertanto, anche se hKey è stato aperto con un samDesired di KEY_READ, può essere usato nelle operazioni che creano chiavi se consentite dal descrittore di sicurezza.

Questo handle viene restituito dalla funzione RegCreateKeyEx o RegOpenKeyEx oppure può essere una delle chiavi predefinite seguenti:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

[in, optional] lpSubKey

Nome di una chiave aperta o creata da questa funzione. Questa chiave deve essere una sottochiave della chiave identificata dal parametro hKey .

Per altre informazioni sui nomi delle chiavi, vedere Struttura del Registro di sistema.

Se hKey è una delle chiavi predefinite, lpSubKey può essere NULL. In questo caso , phkResult riceve lo stesso handle hKey passato alla funzione.

[out] phkResult

Puntatore a una variabile che riceve un handle per la chiave aperta o creata. Se la chiave non è una delle chiavi predefinite del Registro di sistema, chiamare la funzione RegCloseKey dopo aver completato l'uso dell'handle.

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

Un'applicazione non può creare una chiave figlio diretta di HKEY_USERS o HKEY_LOCAL_MACHINE. Un'applicazione può creare sottochiave in livelli inferiori degli alberi HKEY_USERS o HKEY_LOCAL_MACHINE .

Se il servizio o l'applicazione rappresenta utenti diversi, non usare questa funzione con HKEY_CURRENT_USER. Chiamare invece la funzione RegOpenCurrentUser .

La funzione RegCreateKey crea tutte le chiavi mancanti nel percorso specificato. Un'applicazione può sfruttare questo comportamento per creare diverse chiavi contemporaneamente. Ad esempio, un'applicazione può creare una sottochiave a quattro livelli profondi contemporaneamente alle tre sottochiave precedenti specificando una stringa del modulo seguente per il parametro lpSubKey :

subkey1\subkey2\subkey3\subkey4

Si noti che questo comportamento comporta la creazione di chiavi indesiderate se una chiave esistente nel percorso viene ortografiata in modo errato.

Nota

L'intestazione winreg.h definisce RegCreateKey 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 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winreg.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

Regclosekey

RegCreateKeyEx

RegDeleteKey

Regopenkeyex

Funzioni del Registro di sistema

Panoramica del Registro di sistema