J'utilise Windows 8 Enterprise x64. Je me suis connecté avec un compte du groupe Administrateurs. Lorsque j'ouvre Windows Explorer ou une invite de commande, je peux voir le fichier cdd.dll
:
C:\Windows\system32>dir cdd.dll
Volume in drive C has no label.
Volume Serial Number is ▨▨▨▨-▨▨▨▨
Directory of C:\Windows\system32
07/25/2012 09:49 PM 199,680 cdd.dll
Mais si j'ouvre une boîte de dialogue Ouvrir un fichier à partir du navigateur Chrome, de Visual Studio ou d'autres applications (ce sont toutes des applications 32 bits) et que je navigue jusqu'à C:\Windows\system32
, aucun fichier de ce type n'existe (le filtre est configuré pour afficher tous les fichiers). Et si j'appelle l'élément de menu contextuel "Ouvrir la fenêtre de commande ici" à l'aide de Maj + Clic droit dans la boîte de dialogue Ouvrir un fichier et que vous le tapez, dir
cela confirme qu'il n'existe aucun fichier de ce type:
C:\Windows\System32>dir cdd.dll
Volume in drive C has no label.
Volume Serial Number is ▨▨▨▨-▨▨▨▨
Directory of C:\Windows\System32
File Not Found
Cet effet n'est pas spécifique à cdd.dll
, de nombreux autres fichiers diffèrent également. On m'a dit qu'il s'agissait d'un effet de la virtualisation du système de fichiers , que je connais très peu.
Pourriez-vous s'il vous plaît expliquer ou me donner une référence qui explique comment cela fonctionne réellement? Existe-t-il en réalité plusieurs instances différentes du System32
dossier? Quel est leur emplacement physique sur le disque? Est-il possible d'accéder à partir d'un fichier de processus 32 bits dans un System32
dossier différent de celui indiqué aux processus 32 bits par défaut.
la source
Réponses:
Le problème est la redirection de dossiers . Si un programme 32 bits tente d’accéder au
%windir%\System32
dossier, il sera redirigé de manière invisible vers le%windir%\SysWOW64
répertoire. Il s’agit d’une compatibilité d’application 32/64 bits.Tous les fichiers de System32 sont en 64 bits. Toutefois, si un programme a été écrit de manière incorrecte, ils peuvent avoir codé le System32 en code dans leur programme lors de la recherche d'une DLL. Pour éviter les plantages aléatoires de programmes provenant de programmes mal écrits, Microsoft effectue cette redirection.
Si vous devez accéder au dossier System32 et non au dossier SysWOW64, accédez au dossier "caché"
%windir%\sysnative
qui vous mènera auSystem32
dossier "réel" et vous pourrez naviguer dans le dossier comme d'habitude.la source
%windir%
est une variable d'environnement, vous pouvez le saisir exactement comme ça dans Windows et cela fonctionnerait 99% du temps, cela représenteC:\Windows
WOW64 (Windows sur Windows 64 bits) utilise diverses technologies / techniques pour prendre en charge les applications 32 bits. Parmi ceux-ci se trouvent les redirecteurs de dossiers et de registres.
Centre de développement Windows: Bureau exécutant des applications 32 bits
la source