Cartella sysnative in Windows 64-bit spiegata

Sommario:

Cartella sysnative in Windows 64-bit spiegata
Cartella sysnative in Windows 64-bit spiegata

Video: Cartella sysnative in Windows 64-bit spiegata

Video: Cartella sysnative in Windows 64-bit spiegata
Video: Funzionalità di base di BBO - YouTube 2024, Aprile
Anonim

Con il rilascio di Windows 7 di 64-bit, è stata introdotta una piccola modifica nella normale allocazione delle cartelle nella directory di Windows. Due nuove cartelle sono incluse nell'edizione a 64 bit di Windows 7, Windows 8 e Windows 10. Lo sono Sysnative e SysWOW64 cartelle. Questo è solo in Windows a 64 bit. Se si esegue un Windows a 32 bit su un computer a 64 bit, non verranno visualizzati. Né li vedrai quando esegui Windows a 32 bit su un computer a 32 bit.

C'è un'altra cartella al di fuori della directory di Windows e viene chiamata Programmi (x86). Siamo abituati al nome della cartella Program Files che ospita gli eseguibili dei nostri programmi. Nei sistemi a 64 bit, i programmi a 64 bit vengono archiviati nella cartella Programmi mentre i programmi a 32 bit sono contenuti in Programmi (x86). Tuttavia, Windows utilizza qualcosa come un'emulazione per l'esecuzione di programmi a 32 bit su una macchina a 64 bit. E quindi, c'è bisogno di sapere e capire quali sono le cartelle di sistema sotto Windows (64 bit) in modo da sapere come raggiungere il file che si desidera.

A differenza delle macchine a 32 bit, dove le DLL a 32 bit sono archiviate nel Cartella System32, la versione a 64 bit di Windows memorizza le DLL relative a 64 bit nella cartella System32. Questo è per facilitare gli scopi di programmazione e per garantire la retrocompatibilità. Cioè, se un programma a 64 bit si riferisce a System32 nel suo codice, otterrà automaticamente la DLL a 64 bit quando viene chiamata. Questo aiuta gli sviluppatori in quanto non devono cambiare il codice nei loro programmi per Windows a 64 bit.

In breve, Windows ha spostato tutte le DLL a 32 bit dalla cartella System32 nella directory di Windows in un'altra cartella in modo che i programmi precedenti non debbano essere ricodificati per ottenere le DLL appropriate anche quando si utilizzano le API, dopo l'aggiornamento a 64 bit. Il problema si verifica quando un'applicazione a 32 bit tenta di accedere alla cartella System32. In questo caso, il programma si bloccherà poiché non viene scritto per gestire le DLL a 64 bit.

Cartella SysWOW64 in Windows a 64 bit

Tutte le DLL a 32 bit sono state spostate nel nuovo Cartella SysWOW64 nella versione a 64 bit di Windows 7, Windows 8 e Windows 10, quindi quando i programmi a 32 bit chiamano DLL a 32 bit, devono raggiungere la cartella SysWOW64.

Potresti pensare che gli sviluppatori dovranno scansionare i loro programmi e applicazioni per indirizzare le funzioni DLL alla cartella SysWOW64. Ma Microsoft si è già occupato di questo. Se si tratta di un programma a 32 bit che sta chiamando C: Windows System32, un emulatore reindirizzerà il percorso verso C: Windows SysWOW64. Cioè, per eseguire programmi a 32 bit in Windows 64-bit, viene utilizzato un emulatore, in modo che vi sia una corretta compatibilità con le versioni precedenti e per evitare errori durante la chiamata ai file DLL.

Cartella Sysnative in Windows a 64 bit

Image
Image

In alcuni casi è possibile che un programma o un'applicazione a 32 bit abbia realmente bisogno di una DLL a 64 bit. In tal caso, dovrai utilizzare la cartella di reindirizzamento Sysnative. È possibile considerare SysNative come una cartella virtuale e un alias che punta alla cartella System32. Non esiste fisicamente sul tuo sistema, in quanto tale. Quindi, se il tuo programma a 32 bit ha bisogno di accedere a una DLL a 64 bit, non usare C: Windows System32 perché l'emulatore di programma a 32 bit lo porterà alla cartella DLL a 32 bit denominata SysWOW64. Invece, usa C: Windows SysNative come il percorso del programma DLL. L'uso di Sysnative nel percorso lo reindirizzerà alla cartella System32 anziché alla cartella SysWOW64.

Se apri File Windows Explorer, non troverai la cartella Sysnative in C: Windows. Anche se hai impostato Opzioni cartella per mostrare le cartelle nascoste e di sistema. Questo perché, Windows File Explorer è un programma a 64 bit quando viene eseguito in Windows a 64 bit e la cartella Sysnative è visibile e accessibile solo dai programmi a 32 bit.

Per riassumere:

  1. Le cartelle System32 contengono file DLL a 64 bit.
  2. SysWOW64 contiene file DLL a 32 bit e i programmi a 32 bit vengono reindirizzati automaticamente a questa cartella
  3. Sysnative è una cartella di reindirizzamento che consente ai programmi a 32 bit di chiamare DLL a 64 bit.

Letture aggiuntive: MSDN.

Consigliato: