レジストリ内の 32 ビットおよび 64 ビットのアプリケーション データ
64 ビット Windows では、レジストリ エントリの一部が 32 ビット アプリケーションと 64 ビット アプリケーション用に個別に格納され、レジストリ リダイレクター と レジストリ リフレクションを使用して個別の論理レジストリ ビューにマップされます。64 ビット バージョンのアプリケーションでは、32 ビット バージョンとは異なるレジストリ キーと値が使用される場合があるためです。 また、リダイレクトまたは反映されない 共有レジストリ キー もあります。
各 64 ビット レジストリ ノードの親は、Image-Specific Node または ISN です。 レジストリ リダイレクターは、アプリケーションのレジストリ アクセスを適切な ISN サブノードに透過的に転送します。 レジストリ ツリー内のリダイレクト サブノードは、 Wow6432Node という名前を使用して WOW64 コンポーネントによって自動的に作成されます。 その結果、 Wow6432Node を作成するレジストリ キーに名前を付けないようにすることが不可欠です。
KEY_WOW64_64KEYフラグとKEY_WOW64_32KEY フラグを使用すると、それぞれ 64 ビット レジストリ ビューと 32 ビット ビューに明示的にアクセスできます。 詳細については、「 代替レジストリ ビューへのアクセス」を参照してください。
特定のキーのレジストリ リフレクションを無効にして有効にするには、 RegDisableReflectionKey 関数と RegEnableReflectionKey 関数を使用します。 アプリケーションでは、作成するレジストリ キーに対してのみリフレクションを無効にし、 HKEY_LOCAL_MACHINE や HKEY_CURRENT_USERなどの定義済みキーのリフレクションを無効にしないようにする必要があります。 リフレクション リストに含まれるキーを確認するには、 RegQueryReflectionKey 関数を使用します。
関連トピック