|
■No92591 (鯖江ミナ さん) に返信 > 32ビットアプリ(x86でビルド)の場合でも、レジストリのパスはそのままに > 「HKEY_CURRENT_USER\Software\(ソフト名)」のキーが作成され、 > 「WOW6432Node」配下にはキーが作成されません。
.NET Framework からアクセスする場合は、RegistryView パラメーターで 明示的に切り替えることができます。
RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64) RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)
> これらは何らかのルールに則って処理がなされているのでしょうか? > (インストールの場合は特別に「WOW6432Node」が考慮される、とか)
動作ターゲットが WOW64 かどうか、とか。
同様のものとして、ファイル システム リダイレクタという機構がありますね。
64bit 環境上の 32bit プロセスから "C:\Windows\System32\" ディレクトリにアクセスすると、 実際には C:\Windows\SysWOW64\ ディレクトリへの参照となることがあります。 この場合、本当に C:\Windows\System32\ ディレクトリを参照するために、 "C:\Windows\SysNative\" という仮想ディレクトリパスを使う必要があります。
一方、64bit プロセスからだと Sysnative 仮想ディレクトリは使えませんので、 "C:\Windows\System32\" と "C:\Windows\SysWOW64\" をそのまま使います。
|