Windows'taki “Uyumluluk Modu” nasıl çalışır?


Yanıtlar:


31

Uyumluluk modu, sözde şimler kullanılarak elde edilir. TechNet'te bunların nasıl çalıştığını açıklayan iyi bir makale var .

Windows uygulama dosyaları, uygulama yükleyicisine uygulamanın hangi DLL'leri gerektirdiğini ve bunlardan hangi işlevleri kullandığını söyleyen bir içe aktarma tablosu içerir. Örneğin referans için bir işlem kudreti GetVersionExiçinde kernel32.dll. Bir program uyumluluk modunda çalışacak eder, sonra kıskı uygulama ve kama yerine geçer arasına yerleştirildikten GetVersionExuygulama çağrı değildir, böylece, işlev GetVersionExgelen kernel32.dllancak GetVersionExpabucun içinde. Shimmed fonksiyonlar daha sonra önceki Windows versiyonlarının davranışını uygular. GetVersionExkolay bir örnek, her Windows sürümü kendi sürüm numaralarını döndürür GetVersionEx.GetVersionExişlev şimdi Windows 7 sürüm numaralarını döndürmez, örneğin Windows XP sürüm numaralarını döndürür. Yani uygulama Windows XP'de çalıştığına inanacaktır.

Ayrıca, Windows sürümünden Windows sürümüne bazı başka değişiklikler de yapılmıştır. Örneğin, eski sürümlerde, bir program bir DLL yüklediyse, DLL'nin arama yolu da geçerli dizini içeriyordu. Bu bir güvenlik sorunudur, bu nedenle Windows'un yeni sürümleri varsayılan olarak geçerli dizinde arama yapmaz. Uygun şim ile eski davranışları simüle edebilirsiniz.

Şimler, uygulama ile Windows API arasında yalnızca bir katman olduğundan, bir şim uygulamanın kendisinin yapabileceğini yapabilir. Altlık, örneğin UAC'yi atlamak veya korunan dosyalara erişmek için kullanılamaz.

Daha fazla bilgi edinmek istiyorsanız, işte ilginç bulabileceğiniz bazı bağlantılar:

Özellikle Microsoft Uygulama Uyumluluğu Araç Seti bir göz atmaya değer. Bu araç, bilinen sorunlara sahip uygulamalar, mevcut tüm uyumluluk düzeltmeleri ve modları ve her bir uygulamaya hangi düzeltmelerin uygulandığı ile ilgili genel bir bakış sunar.


1
Merakımı başarılı bir şekilde somut örneklerle tatmin ettin. Teşekkür ederim!
Kale Muscarella


4

Uyumluluk Modu bilgim, birkaç Windows sistem çağrısının programa yalan söylemesine neden olmasıdır.

Açık bir örnek , belirtilen yerine Windows sürümü bildiren GetVersionEx ve GetVersion işlevleridir .

Eski stil dosya yolları, Uyumluluk modundaki bir program iyi bilinen sistem klasörlerinde bir dosyaya başvurduğunda da otomatik olarak çevrilir. Örneğin , Windows 7'de çalışırken, XP uyumluluk modunda bir programa C:\Documents and Settingsçevrilir C:\Users\<user>\Documents.


-5

Bu makale açıklamak için iyi bir iş çıkarır.

http://arstechnica.com/information-technology/2010/01/windows-xp-mode/

Bununla birlikte, Windows 7 ile Redmond, bu soruna bir çözüm getirmiştir: Windows XP Mode. Windows XP Mode, sanallaştırılmış bir Windows XP kopyası üzerinde çalışan uygulamaların Windows 7 Başlat menüsünde ve Windows 7 masaüstünde görünmesini sağlamak için sanallaştırma teknolojisini kullanır.


4
Windows XP Mode! = Uyumluluk Modu
Kevin Mark
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.