Dossier symbolique dans Windows 64 bits expliqué
Avec la sortie de Windows 7 64 bits, un petit changement a été introduit dans l'allocation normale des dossiers dans le répertoire Windows. L’édition 64 bits de Windows 7, Windows 8 et Windows 10 inclut deux nouveaux dossiers. Symbolique et SysWOW64 Dossiers. Ceci est uniquement dans Windows 64 bits. Si vous exécutez Windows 32 bits sur un ordinateur 64 bits, vous ne les verrez pas. Vous ne les verrez pas non plus lors de l'exécution de Windows 32 bits sur un ordinateur 32 bits.
Il existe un autre dossier en dehors du répertoire Windows, il s’appelle Fichiers de programme (x86). Nous sommes habitués au nom du dossier Program Files qui contient les exécutables de nos programmes. Dans les systèmes 64 bits, les programmes 64 bits sont stockés dans le dossier Program Files, tandis que les programmes 32 bits sont hébergés dans Program Files (x 86). Cependant, Windows utilise quelque chose comme une émulation pour exécuter des programmes 32 bits sur un ordinateur 64 bits. Et par conséquent, il est nécessaire de connaître et de comprendre quels sont les dossiers système sous Windows (64 bits) afin de savoir comment accéder au fichier souhaité..
Contrairement aux ordinateurs 32 bits, où les DLL 32 bits sont stockés dans le répertoire Dossier System32, la version 64 bits de Windows stocke les DLL associées à 64 bits dans le dossier System32. Cela facilite la programmation et offre une compatibilité ascendante. En d'autres termes, si un programme 64 bits fait référence à System32 dans son code, il obtiendra automatiquement la DLL 64 bits lorsqu'il sera appelé. Cela aide les développeurs car ils n'ont pas à changer le code dans leurs programmes pour Windows 64 bits.
En bref, Windows a déplacé toutes les DLL 32 bits du dossier System32 du répertoire Windows vers un autre dossier, de sorte que les programmes précédents ne doivent pas être recodés pour obtenir les DLL appropriées même lorsque vous utilisez des API - après la mise à niveau vers 64 bits. Le problème se produit lorsqu'une application 32 bits tente d'accéder au dossier System32. Dans ce cas, le programme va planter car il n'est pas écrit pour gérer les DLL 64 bits..
Dossier SysWOW64 sous Windows 64 bits
Toutes les DLL 32 bits ont été déplacées vers le nouveau Dossier SysWOW64 dans la version 64 bits de Windows 7, Windows 8 et Windows 10, ainsi, lorsque les programmes 32 bits font appel à des DLL 32 bits, ils doivent accéder au dossier SysWOW64.
Vous aurez peut-être l’impression que les développeurs devront analyser leurs programmes et leurs applications pour que les fonctions de la DLL soient dirigées vers le dossier SysWOW64. Mais Microsoft en a déjà pris soin. S'il s'agit d'un programme 32 bits qui appelle C: \ Windows \ System32, un émulateur redirigera le chemin vers C: \ Windows \ SysWOW64. Autrement dit, pour exécuter des programmes 32 bits sous Windows 64 bits, un émulateur est utilisé afin d'assurer une compatibilité ascendante adéquate et d'éviter les erreurs lors de l'appel de fichiers DLL..Dossier symbolique sous Windows 64 bits
Dans certains cas, un programme ou une application 32 bits peut nécessiter une DLL 64 bits. Dans ce cas, vous devrez utiliser le dossier de redirection Symbolique. Vous pouvez considérer le SysNative comme un dossier virtuel et un alias qui pointe vers le dossier System32. Il n'existe pas physiquement sur votre système, en tant que tel. Donc, si votre programme 32 bits doit accéder à une DLL 64 bits, n’utilisez pas C: \ Windows \ System32 parce que l'émulateur de programme 32 bits le déposera dans le dossier DLL 32 bits appelé SysWOW64. Au lieu de cela, utilisez C: \ Windows \ SysNative en tant que chemin d'accès au programme DLL. L'utilisation de Sysnative dans le chemin d'accès le redirigera vers le dossier System32 au lieu du dossier SysWOW64.
Si vous ouvrez l'Explorateur de fichiers Windows, vous ne trouverez pas le dossier Sysnative dans C: \ Windows. Même si vous définissez Options des dossiers pour afficher les dossiers cachés et système. En effet, l'Explorateur de fichiers Windows est un programme 64 bits lorsqu'il s'exécute sous Windows 64 bits et le dossier Sysnative est visible et accessible uniquement à partir de programmes 32 bits.
Pour résumer:
- Les dossiers System32 contiennent des fichiers DLL 64 bits..
- SysWOW64 contient des fichiers DLL 32 bits et les programmes 32 bits sont automatiquement redirigés vers ce dossier.
- Sysnative est un dossier de redirection permettant aux programmes 32 bits d'appeler des DLL 64 bits..
Lecture supplémentaire: MSDN.
Vous voulez connaître la différence entre les dossiers System32 et SysWOW64?