Prima di iniziare con la spiegazione del Registro di Sistema di Windows Vista è giusto fare una premessa: l'intero sistema operativo dipende dal Registro, ogni modifica deve essere fatta con cautela al fine di evitare danni seri al nostro pc.
Per aprire il registro di sistema dobbiamo posizionarci su Start --> digitiamo regedit --> clicchiamo Invio

La schermata che compare mostra la struttura del nostro Registro.
Come possiamo vedere dall'immagine sopra il Registro di Sistema di Windows è simile a quello di Windows Xp, infatti molte delle chiavi sono familiari.
E' possibile inoltre visualizzare la struttura espansa del Registro di Sistema. Per fare ciò è sufficiente cliccare sul segno a forma di triangolino "girato" posizionato accanto ad ogni chiave e sottochiave.
Tornando al Registro nella struttura non espansa, possiamo notare una serie di cartelle che iniziano tutte con il prefisso HKEY (chiavi). Il Registro di Windows Vista ne ha cinque, vediamole nel dettaglio:
- HKEY_CLASSES_ROOT contiene le informazioni utilizzate da diverse tecnologie OLE e i dati sull'associazione di classi di file, che equivalgono al Registro di sistema in modalità MS-DOS. Una chiave o un valore particolare sono presenti in HKEY_CLASSES_ROOT se la chiave o il valore corrispondente sono presenti in HKEY_LOCAL_MACHINE\SOFTWARE\Classes oppure in HKEY_CURRENT_USER\SOFTWARE_Classes. Se una chiave o un valore sono presenti in entrambe le posizioni, alla quella visualizzata di HKEY_CLASSES_ROOT è la versione contenuta in HKEY_CURRENT_USER.
- HKEY_CURRENT_USER contiene il profilo utente dell'utente attualmente connesso in modalità interativa incluse le variabili di ambiente, le impostazione del desktop, le connessioni di rete, le stampanti e le preferenze del programma. Questa sottostruttura è un alias della sottostruttura HKEY_USERS e fa riferimento a HKEY_USERS\identificatico di protezione dell'utente corrente.
- HKEY_LOCAL_MACHINE contiene informazioni sul sistema del computer locale, compresi i dati relativi all'hardware e al sistema operativo quali il tipo di bus, la memoria di sistema, i driver di periferica e i dati di controllo dell'avvio.
- HKEY_USERS contiene le informazioni riguardanti i profili utente e il profilo predefinito caricati correntemente , comprese le informazioni presenti anche in HKEY_CURRENT_USER. I profili degli utenti che accedono a un server in modalità remota non sono caricati in questa chiave del server, ma vengono caricati, invece nel Registro di sistema del computer locale.
- HKEY_CURRENT_CONFIG contiene infomazioni sul profilo hardware utilizzato dal sistema del computer locale e all'avvio. Queste informazioni vengono utilizzate per configurare determinate impostazioni, come i driver di periferica da caricare e la risoluzione dello schermo da utilizzare. Questa sottostruttura fa parte di HKEY_LOCAL_MACHINE e fa riferimento a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Currents.
Un'altro termine che dobbiamo tener presente è il termine Hive, detti anche file registro. Esso descrive un insieme di chiavi, sottochiavi e valori che trova origine nel livello superiore della gerarchia del Registro di Sistema.
Un hive viene slavato in un solo file e in un file .log; entrambi sono situati nelle cartelle systemdirectory\System32\Config oppure systemdrive\Documents and Settings\nomeutente. Le stringe systemdirectory e systemdrive sono segnamposti e indicano rispettivamente la directory e la partizione contententi i file di sistema di Windows Vista. Infatti se ad esempio il file di sistema di Windows Vista, per l'utente mondodvd si trovano nella directory Winnt della partizione C; i file hive saranno memorizzati nelle cartelle C:\Winnt\System32\Config e C:\Documents and Settings\Pippo.
Ogni chiave o sottochiave del Registro di sistema può contenere dati chiamati voci di valore. Le informazioni contenute nelle voci di valore riguardano i singoli utenti, mentre altri riguardano tutti gli utenti di un computer.
!!pagebreak!!
Una voce di valore è composta da 3 parti: il nome del valore, il tipo di dati del valore e il valore stesso.
Il tipo indica il formato dei dati. I dati compresi tra 0 e 0x7FFFFFFF sono riservati per le definizioni di sistema. Quindi è consigliabile che i programmi utilizzino questi tipi di dati, anche se a volte sono riservati anche i tipi compresi tra 0x800000000 e 0xFFFFFFFF.
Vediamo nel dettaglio i tipi di dati definiti e utilizzati dal sistema.
Nome | Tipo di dati | Descrizione |
| Valore binario | REG_BINARY | Dati binari non formattati. Quasi tutte le informazioni sui componenti hardware sono memorizzate come dati binari e vengono visualizzate nell'Editor del Registro di sistema in formato esadecimale |
| Valore DWORD | REG_WORD | Sono dati rappresentati da un numero della lunghezza di 4 byte. Molti paramentri relativi a driver di periferica e servizi appartengono a questo tipo e vengono visualizzati nell'Editor del registro di sistema in formato binario, esadecimale oppure decimale. |
| Valore stringa espandibile | REG_EXPAND_SZ | Stringa di dati che può rappresentarsi di lunghezza variabile. Questo tipo di dati include le variabili risolte quando un programma o un servizio utlizzano i dati. |
| Valore multistringa | REG_MULTI_SZ | Stringa multipla. A questo punto di stringa appartengono i valori che contengono elenchi o valori multipli in un formato leggibile. Le voci sono solitamente separate da spazi, virgole o altri segni di punteggiatura |
| Valore stringa | REG_SZ | Stringa di testo di lunghezza fissa |
| Valore binario | Reg_Resource_List | Una serie di matrici nodificate progettata per memorizzare un elenco di risorse utilizzate da un driver di dispositivo hardware o da uno dei dispositivi fisici controllati. Questi dati vengono rilevati e scritti nella struttura \ResourceMap dal sistema. Essi sono visualizzati nell'editor del Registo di sistema in formato esadecimale come valori binari. |
| Valore binario | REG_RESOURCE_ | Una serie di matrici nidificate progettata per memorizare un elenco di possibili risorse hardware o uno dei dispositivi fisici che il driver di dispositivo può utilizzare, da cui il sistema scrive un sottoinsieme nella struttura \ResourceMap. Questi dati sono rilevati dal sistema e sono visualizzati nell'editor del Registro di sistema in formato esadecimale come valori binari. |
| Valore binario | REG_FULL_ RESOURCE_ DESCRIPTOR | Una serie di matrici nidificate progettate per memorizzare un elenco di risorse utilizzate per memorizzare un elenco di risorse utilizzate da un dispositivo hardware fisico. Questi dati vengono rilevati e scritti nella struttura \HardwareDescription dal sistema e sono visualizzati nell'editor del Registro di sistema in formato esadecimale come valori binari |
| Nessuno | Reg_none | Si tratta di dati privi di un tipo particolare. Questi sono scritti nel Registro di sistema dal sistema o dalle applicazioni e sono visualizzati nell'editor del Registro di sistema in formato esadecimale come valori binari. |
| Collegamento | REG_LINK | Una stringa Unicode che assegna un nome a un collegamento simbolico |
| Valore QWORD | REG_QWORD | Dati rappresentati da un numero intero a 64 bit. Questi dati sono visualizzati nell'editor del Registro di sistema come valore binari. |
I dati del Registro di sistema vengono memorizzati nel pool di paginazione, una particolare memoria virtuale che viene scritta sul disco fisso quando questo non è in uso.
La dimensione massima del Registro di sistema è pari a 33% del dimensione del pool di paginazione. In ogni caso è possibile modificare questa dimensione fino ad un massimo dell'80% del pool di paginazione. Mentre la sua dimensione minima è di 16 MB.
Per visualizzare e modificare la dimensione del Registro di sistema, bisogna andare in Pannello di controllo --> Sistema --> Prestazioni -->Strumenti avanzati-->Modifica l'aspetto e le prestazioni di Windows --> Avanzate --> Cambia.
Teniamo a precisare che la dimensione del Registro deve essere modificata solo se il computer è configurato come controller di dominio per una rete di grandi dimensioni, oppure quando si riceve un messaggio di errore che indica che il Registro è troppo piccolo.



