64 位元版本 Windows 中的註冊表分為 32 位登錄機碼和 64 位元登錄機碼。許多 32 位登錄機碼與其相應的 64 位元登錄機碼同名,反之亦然。
64 位元版本 Windows 包含的預設 64 位元版本登錄編輯程式 (Regedit.exe) 可顯示 64 位元和 32 位的 登錄機碼。WOW64 註冊表重新導向器為 32 位程式提供了對應於 32 位程式登錄機碼的不同登錄機碼。在 64 位元版本的登錄編輯程式中,32 位登錄機碼顯示在以下登錄機碼下:
HKEY_LOCAL_MACHINE\Software\WOW6432Node
使用預設的 64 位元版本登錄編輯程式,可以查看或編輯 64 位元和 32 位的登錄機碼和項值。要查看或編輯 64 位元登錄機碼,必須使用 64 位元版本的登錄編輯程式 (Regedit.exe)。還可以使用 %systemroot%\Syswow64 檔案夾中的 32 位版本登錄編輯程式查看或編輯 32 位登錄機碼和項值。在 32 位版本登錄編輯程式中執行任務的方式與 64 位元版本登錄編輯程式沒有區別。要開啟 32 位版本的登錄編輯程式,請按照下列步驟操作:
- 單擊“開始”,然後單擊“運行”。
- 在“開啟”框中,鍵入 %systemroot%\syswow64\regedit,然後單擊“確定”。
注意:除非使用 -m 開關啟動登錄編輯程式的第二個執行個體,否則,必須先關閉 64 位元版本的登錄編輯程式,然後才能開啟 32 位版本的登錄編輯程式(反之亦然)。例如,如果 64 位元版本的登錄編輯程式已經在運行,在第 2 步鍵入 %systemroot%\syswow64\regedit -m 可啟動 32 位版本的登錄編輯程式。
為了支援 32 位和 64 位元 COM 註冊和程式狀態的共存,WOW64 為 32 位程式提供了一種備用註冊表視圖。32 位程式會看到與真正的 64 位元 HKEY_LOCAL_MACHINE\Software 樹完全分開的 32 位 HKEY_LOCAL_MACHINE\Software 樹 (HKEY_LOCAL_MACHINE\Software\WOW6432Node)。這樣可以隔離 HKEY_CLASSES_ROOT,因為此樹的每個電腦部分駐留在以下登錄機碼內:
HKEY_LOCAL_MACHINE\Software
為了通過 COM 和其他機制實現 64 位元/32 位程式互通性,WOW64 使用了一個“註冊表反射器”來在 64 位元註冊表視圖和 32 位註冊表視圖之間鏡像某些登錄機碼和項值。該反射器是“智能”的,因為它只反射 COM 啟用資料。
反射的登錄機碼
WOW64 註冊表反射器可能會在反射過程中修改登錄機碼的內容和項值,目的是為了調整路徑名等。因此,32 位的內容與 64 位元的內容可能會有所不同。下面的登錄機碼會被反射:
- HKEY_LOCAL_MACHINE\Software\Classes
- HKEY_LOCAL_MACHINE\Software\COM3
- HKEY_LOCAL_MACHINE\Software\Ole
- HKEY_LOCAL_MACHINE\Software\EventSystem
- HKEY_LOCAL_MACHINE\Software\RPC