Aracılığıyla paylaş


Kayıt Defteri Yeniden Yönlendiricisi

Kayıt defteri yeniden yönlendiricisi, WOW64'te kayıt defterinin belirli bölümlerinin ayrı mantıksal görünümlerini sağlayarak 32 bit ve 64 bit uygulamaları yalıtıyor. Kayıt defteri yeniden yönlendiricisi, ilgili mantıksal kayıt defteri görünümlerine 32 bit ve 64 bit kayıt defteri çağrılarını durdurur ve bunları ilgili fiziksel kayıt defteri konumuna eşler. Yeniden yönlendirme işlemi uygulama için saydamdır. Bu nedenle, 32 bit bir uygulama, 64 bit Windows'ta farklı bir konumda depolanmış olsa bile kayıt defteri verilerine 32 bit Windows üzerinde çalışıyormuş gibi erişebilir.

ARM üzerinde Windows 10': x86 uygulamaları için 32 bit mantıksal görünüme ek olarak ARM üzerinde Windows 10, 32 bit ARM uygulamaları için ayrı bir mantıksal görünüm içerir.

Yeniden yönlendirilen kayıt defteri yolları altındaki anahtarların bir alt kümesi paylaşılır. Paylaşılan anahtarlara yapılan 32 bit kayıt defteri çağrıları yeniden yönlendirilmiyor. Bunun yerine, anahtarın bir fiziksel kopyası kayıt defterinin her mantıksal görünümüne eşlenir. Yeniden yönlendirilen anahtarların ve paylaşılan anahtarların listesi için bkz. WOW64'den Etkilenen Kayıt Defteri Anahtarları.

Windows Server 2008, Windows Vista, Windows Server 2003 ve Windows XP: COM ve diğer mekanizmalar aracılığıyla uygulama birlikte çalışabilirliğini etkinleştirmek için, yeniden yönlendirilen kayıt defteri anahtarlarının bir alt kümesi de yansıtılır. Kayıt defteri yansıma işlemi, kayıt defteri anahtarlarını ve değerlerini eşitlenmiş tutmak için iki kayıt defteri görünümü arasında kopyalar. Kayıt defteri yansıması Windows 7 ve Windows Server 2008 R2'den başlayarak kaldırıldı. Daha fazla bilgi için bkz. Kayıt Defteri Yansıma.

Aşağıdaki senaryoda bu mantıksal görünümlerin kullanımı gösterilmektedir:

  • 32 bit x86 uygulaması aşağıdaki kayıt defteri anahtarının varlığını denetler: HKEY_LOCAL_MACHINE\Software\Hello. Anahtar yoksa, uygulama bunu "Hello 32 bit x86 world" varsayılan değeriyle oluşturur; aksi takdirde değeri okur ve görüntüler.
  • Aynı uygulama, "Hello 32 bit x86 world" yerine "Hello 64 bit world" yazacak şekilde değiştirilir ve 64 bit x64 veya ARM64 uygulaması olarak yeniden derlenmiştir.
  • ARM'de Windows 10': Aynı uygulama , "Hello 32 bit ARM dünyası" yazacak şekilde değiştirilir ve 32 bit ARM uygulaması olarak yeniden derlenmiştir.
  • 32 bit x86 uygulaması 64 bit Windows üzerinde çalıştırıldığında, "Hello 32 bit x86 world" görüntülenir. 64 bit uygulama çalıştırıldığında "Merhaba 64 bit dünya" görüntülenir. ARM üzerinde Windows 10'u : 32 bit ARM uygulaması 64 bit ARM64 Windows üzerinde çalıştırıldığında , "Hello 32 bit ARM world" görüntülenir. Tüm uygulamalar aynı önceden tanımlanmış tanıtıcıya ve aynı anahtar adına sahip aynı kayıt defteri işlevlerini çağırır; Fark, her uygulamanın kendi mantıksal kayıt defteri görünümünde çalışması ve her görünümün, dizenin tüm sürümlerini olduğu gibi tutan kayıt defterinin ayrı bir fiziksel konumuna eşlenmesidir.

Yeniden yönlendirilen anahtarlar Wow6432Nodealtında fiziksel konumlara eşlenir. Örneğin, HKEY_LOCAL_MACHINE\SoftwareHKEY_LOCAL_MACHINE\Software\Wow6432Node'e yönlendirilir. Ancak, yeniden yönlendirilen anahtarların fiziksel konumu sistem tarafından ayrılmış olarak kabul edilmelidir. Bu konum değişebileceğinden uygulamalar bir anahtarın fiziksel konumuna doğrudan erişmemelidir. Daha fazla bilgi için bkz. Alternatif Kayıt Defteri Görünümüne Erişme.

ARM üzerinde Windows 10: Yeniden yönlendirilen 32 bit ARM tuşları WowAA32Node altında fiziksel konumlara eşlenir.

kayıt defterine %ProgramFiles% veya %commonprogramfiles% içeren REG_SZ veya REG_EXPAND_SZ verileri yazan 32 bit uygulamalara yardımcı olmak için WOW64 bu yazma işlemlerini durdurur ve bunları "%ProgramFiles(x86)%" ve "%commonprogramfiles(x86)%" ile değiştirir. Örneğin, Program Files dizini C sürücüsündeyse, "%ProgramFiles(x86)%" "C:\Program Files (x86)" olarak genişletilir. Değiştirme yalnızca aşağıdaki koşulların karşılanması durumunda gerçekleşir:

  • Dize %ProgramFiles% veya %commonprogramfiles%ile başlamalıdır. Dize bir boşlukla veya %dışında bir karakterle başlıyorsa, değiştirilmez.
  • Dize karşılaştırması büyük/küçük harfe duyarlı olduğundan, %ProgramFiles% veya %commonprogramfiles% tam olarak gösterildiği gibi olmalıdır. Örneğin, dize %commonprogramfiles%yerine %CommonProgramFiles% ile başlıyorsa değiştirilmez.
  • Dize MAX_PATH*2+15 karakteri aşamaz. Bu uzunluğu aşarsa değiştirilmez.
  • Anahtar KEY_WOW64_64KEY ile açılamaz. Bu bayrak, anahtar üzerindeki işlemlerin 64 bit kayıt defteri görünümünde gerçekleştirilmesi gerektiğini belirtir, bu nedenle değiştirilmez. Daha fazla bilgi için bkz. Alternatif Kayıt Defteri Görünümüne Erişme.

Windows Server 2008, Windows Vista, Windows Server 2003 ve Windows XP: KEY_WOW_64_64KEY bayrağı bir anahtarın değiştirilip değiştirilmediğini etkilemez. Bu bayrak, Windows 7 ve Windows Server 2008 R2 ile başlayarak değiştirme işlemini etkiler.

Ayrıca, system32 içeren REG_SZ veya REG_EXPAND_SZ anahtarları syswow64 ile değiştirilir. Dize, \system32 %windir%işaret eden veya altındaki yolla başlamalıdır. Dize karşılaştırması büyük/küçük harfe duyarlı değildir. Ortam değişkenleri yol eşleşmeden önce genişletilir, bu nedenle aşağıdaki yolların tümü değiştirilir: %windir%\system32, %SystemRoot%\system32 ve C:\windows\system32. Bu düzeltme eki yalnızca Windows 7'nin öncesinde yansıtılan anahtarlara uygulanır.

Daha fazla bilgi için aşağıdaki konulara bakın: