Neden farklı işlemler System32 klasörünün farklı örneklerini görüyor?


10

Windows 8 Enterprise x64 kullanıyorum. Administrators grubundan bir hesap kullanarak oturum açtım. Windows Gezgini'ni veya bir komut istemini açtığımda dosyayı görebiliyorum cdd.dll:

Windows Gezgini


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

Ancak Chrome tarayıcı, Visual Studio veya diğer bazı uygulamalardan (hepsi 32 bit uygulamalardır) bir Dosya Aç iletişim kutusu açar ve bu dosyaya gidersem C:\Windows\system32böyle bir dosya olmaz (filtre Tüm Dosyaları gösterecek şekilde ayarlanır). Ve Dosya Aç iletişim kutusunda Shift + RightClick kullanarak "Burada komut penceresini aç" bağlam menü öğesini çağırır ve dirböyle bir dosya olmadığını onaylar:

Dosya İletişim Kutusunu Aç


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

Bu efekt spesifik değildir cdd.dll, diğer birçok dosya da farklıdır. Bunun dosya sistemi sanallaştırmasının bir etkisi olduğu, çok az şey bildiğim söylendi .

Lütfen bunun nasıl çalıştığını açıklayan bir referans verebilir misiniz? Aslında System32klasörün birkaç farklı örneği var mı . Diskteki fiziksel konumları nedir? 32 bit işlem dosyalarına, System32gösterilenden farklı bir klasörde varsayılan olarak 32 bit işlemlere erişmek mümkün mü ?


Herhangi bir x64 uygulamasında görünüyorlar mı? Windows'un 32-bit uygulamalardan 64-bit sürücüleri (cdd.dll bir ekran sürücüsü) gizlediği bir önsezi var.
Nathan C

Evet, dosya sistemine göz atmaya izin veren 64 bit uygulamaların tümü (örneğin, Dosya Aç iletişim kutusu var) Windows Gezgini ile aynı dosyaları gösterir.
Vladimir Reshetnikov

@VladimirReshetnikov Hala anlamadığınız bir şey var mı, sorunuzu düzenlediniz ancak daha fazla ayrıntı eklemediniz, ayrıca cevaplardan hiçbirini kabul etmediniz. Açıklığa kavuşturulmuş başka bir şeye mi ihtiyacınız var?
Scott Chamberlain

@ScottChamberlain Etiketleri yeni düzenledim. Cevap çok iyi. Teşekkürler!
Vladimir Reshetnikov

Yanıtlar:


11

Sorun klasör yeniden yönlendirme , 32 bit bir program %windir%\System32klasöre erişmeye çalışırsa görünmez bir şekilde %windir%\SysWOW64dizine yeniden yönlendirilir , bu 32/64 bit uygulama uyumluluğu içindir.

System32 içindeki tüm dosyalar 64 bit, ancak bir program yanlış yazılmışsa, bir DLL ararken System32'a programlarını kodlamış olabilirler. Hatalı yazılmış programlardan rasgele program çökmelerini önlemek için Microsoft bu yönlendirmeyi yapar.

SysWOW64 klasörüne değil, System32 klasörüne erişmeniz gerekiyorsa, %windir%\sysnativesizi "gerçek" System32klasöre götürecek olan "gizli" klasöre gidin ve klasöre normal gibi göz atabilirsiniz.


%windir%bir çevre değişkeni, pencerelerde olduğu gibi yazabilirsiniz ve çalıştığı zaman,% 99'u temsil ederC:\Windows
Scott Chamberlain

4

WOW64 (Windows 64bit üzerinde Windows) 32bit uygulamaları desteklemek için çeşitli teknolojiler / teknikler kullanır. Bunların arasında Klasör ve Kayıt Defteri yönlendiricileri bulunur.

Windows Dev Center: 32 bit Uygulamaları Çalışan Masaüstü


Ve daha spesifik olarak, bu sihri gerçekleştiren uygulama Uyumluluk Profilleri hakkında bilgi.
David Hoelzer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.