Windows レジストリ リフレクションの削除
プラットフォーム
クライアント - Windows 7
サーバー - Windows Server 2008 R2
機能への影響
重大度 - 低
頻度 - 低
Description
レジストリ リフレクション プロセスでは、2 つのレジストリ ビュー間でレジストリ キーと値がコピーされ、同期が維持されます。Windows の以前の 64 ビット インストールでは、32 ビット ビューと 64 ビット ビューの間にリダイレクトされたレジストリ キーのサブセットがプロセスに反映されました。 ただし、これを実装すると、レジストリの状態に一部の不整合が発生しました。 (レジストリ リフレクションの詳細については、以下の「 その他のリソースへのリンク 」セクションの対応する MSDN の記事を参照してください)。
Windows 7 以降では、レジストリリフレクションが完全に削除され、以前に反映されたキーがマージされました。
- HKEY_LOCAL_MACHINE\Software\Classes
- HKEY_LOCAL_MACHINE\Software\Microsoft\COM3
- HKEY_LOCAL_MACHINE\Software\Microsoft\EventSystem
- HKEY_LOCAL_MACHINE\Software\Microsoft\Ole
- HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
- HKEY_USERS\*\Software\Classes
- HKEY_USERS\*_Classes
これらのキーの変更は 32 ビットと 64 ビットの両方のアプリケーションですぐに使用できるため、事実上、これは同じリフレクション動作を提供します。
条件付きで反映されたキーは分割されたままです。
- HKEY_LOCAL_MACHINE\Software\Classes\CLSID
- HKEY_LOCAL_MACHINE\Software\Classes\Interface
- HKEY_USERS\*\Software\Classes\CLSID
- HKEY_USERS\*\Software\Classes\Interface
- HKEY_USERS\*_Classes\CLSID
- HKEY_USERS\*_Classes\Interface
これらは、32 ビットと 64 ビットのアプリケーション間で共有してはならないデータを保持するために使用されます。
症状
上記の一覧の CLSID キーとインターフェイス キーは、リダイレクト中はもう反映されません。 これはほとんどの場合、望ましい動作ですが、アプリケーションが Vista で反映された動作に依存する可能性があります。
アプリケーションがリフレクション (RegDisableReflectionKey と RegEnableReflectionKey) を制御できるようにする関数は、Windows 7 では操作を行いません。
影響の軽減
COM は、レジストリ リフレクションの主要なコンシューマーです。 COM およびその他のコンシューマーは、この変更に対応するように更新されました。 この変更は、標準 COM API を使用するアプリケーションには影響しません。
解決策
レジストリ リフレクションに依存して 32 ビットビューと 64 ビット ビューを同期する場合は、次のいずれかのオプションを適用します。
インストール中に両方のビューにキーを明示的に作成する
反映されたキーのスコープからキーを移動する
反映されたキーのクエリを実行するときに、レジストリの両方のビューを確認する
メモ: KEY_WOW64_32KEYフラグとKEY_WOW64_64KEY フラグを組み合わせることはできません
レジストリ リフレクションを無効にするために RegDisableReflectionKey 関数に依存している場合は、次のいずれかのオプションを適用します。
- インストール中に両方のビューにキーを明示的に作成する
- 反映されたキーのスコープからキーを移動する
- プラットフォーム固有のサブキー (x86、amd64、ia64 など) を使用してビット数固有のデータを分離する
その他のリソースへのリンク
Note
これらのリソースは、一部の言語や国/地域では使用できない場合があります。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示