In un’installazione standard di Windows, la directory ‘Program Files’ sarà a %SystemDrive%\Program Files (o l’equivalente localizzato), e i ‘Common Program Files’ (o l’equivalente localizzato) saranno una sottodirectory sotto ‘Program Files’. In Windows Vista e successivi, i percorsi delle directory ‘Program Files’ e ‘Common Program Files’ non sono localizzati su disco. Invece, i nomi localizzati sono punti di giunzione NTFS per le posizioni non localizzate. Inoltre, la shell di Windows localizza il nome della cartella “Program Files” a seconda della lingua di visualizzazione dell’interfaccia utente del sistema.

Sia “Program Files” che “Common Program Files” possono essere spostati. All’avvio del sistema, i percorsi effettivi di ‘Program Files’ e ‘Common Program Files’ sono caricati dal registro di Windows, dove sono memorizzati nei valori ProgramFilesDir e CommonFilesDir sotto HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. Sono poi resi accessibili al resto del sistema tramite le variabili d’ambiente volatili %ProgramFiles% e %CommonProgramFiles%. Le applicazioni possono anche ottenere le posizioni di questi percorsi interrogando il Setup API usando dirids, o attraverso Windows Management Instrumentation, o interrogando la shell usando CSIDLs, o ShellSpecialFolderConstants. Questi sono tutti metodi indipendenti dalla localizzazione.

Le versioni IA-64 e x86-64 di Windows hanno due cartelle per i file delle applicazioni: La cartella Program Files serve come destinazione di installazione predefinita per i programmi a 64 bit, mentre la cartella Program Files (x86) è la destinazione di installazione predefinita per i programmi a 32 bit che hanno bisogno del livello di emulazione WoW64. Mentre le versioni di Windows a 64 bit hanno anche una variabile d’ambiente %ProgramFiles(x86)%, i dirid e i CSIDL non sono diversi tra gli ambienti a 32 bit e a 64 bit; le API semplicemente restituiscono risultati diversi, a seconda che il processo chiamante sia emulato o meno.

Per essere compatibile all’indietro con le limitazioni 8.3 dei vecchi nomi di file della File Allocation Table, i nomi ‘Program Files’, ‘Program Files (x86)’ e ‘Common Program Files’ sono accorciati dal sistema a progra~N e common~N, dove N è una cifra, un numero di sequenza che in un’installazione pulita sarà 1 (o 1 e 2 quando sono presenti sia ‘Program Files’ che ‘Program Files (x86)’).

Se Windows è installato su un volume NTFS, per impostazione predefinita, la cartella ‘Program Files’ può essere modificata solo dai membri dei gruppi di utenti ‘Administrators’. Questo può essere un problema per i programmi creati per Windows 9x. Quei sistemi operativi non avevano sicurezza del file system, e i programmi potevano quindi memorizzare i loro dati in ‘Program Files’. I programmi che memorizzano i loro dati in ‘Program Files’ di solito non funzionano correttamente su sistemi Windows NT con privilegi utente normali, a meno che la sicurezza non venga abbassata per le sottodirectory interessate. Windows Vista ha affrontato questo problema introducendo la virtualizzazione di file e registro. Quando questa virtualizzazione è abilitata per un processo, Windows salva le modifiche alla cartella ‘Program Files’ in %LocalAppData%\VirtualStore\Program Files (x86).

.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.