次の方法で共有


x64 ベースのバージョンの Windows でのレジストリの変更

この記事では、x64 ベースのバージョンの Microsoft Windows Server 2003 および Microsoft Windows XP Professional x64 Edition で行われたレジストリ変更の一部について説明します。 Windows x64 Edition オペレーティング システムが 32 ビット プログラムと 64 ビット プログラムのレジストリ情報を格納する方法について説明します。

元の KB 番号: 896459

まとめ

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 したがって、次の手順を注意深く実行してください。 保護のために、レジストリを変更する前に、バックアップします。 その後、問題が起こった場合は、レジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、マイクロソフト サポート技術情報の記事を表示するには、次の資料番号をクリックします。 322756 Windows でレジストリをバックアップおよび復元する方法

x64 ベースバージョンの Microsoft Windows Server 2003 または Microsoft Windows XP Professional x64 Edition を実行しているコンピューターでは、異なるレジストリ レイアウトを使用して 32 ビットプログラムと 64 ビット プログラムの両方を処理します。 Windows オペレーティング システムの x64 Edition バージョンのレジストリ レイアウトの変更により、プログラムがハードコーディングされた.dllパス、プログラム設定、およびその他のパラメーター値が上書きされないようにします。

32 ビット レジストリ設定で 64 ビット レジストリ設定が上書きされないようにするために、x64 ベースバージョンの Microsoft Store を実行しているコンピューターは、レジストリの新しいブランチにある 32 ビット プログラムの設定を保存します。 ユーザーは、プログラムのインストール中に変更に気付くわけではありません。 レジストリ リダイレクト プロセスを使用すると、プログラムのインストールとプログラム構成の設定で、ユーザーの介入なしに適切なレジストリ サブキーにアクセスできます。

x64 ベースバージョンの Windows で実行されている 32 ビット プログラムと 64 ビット プログラムは、さまざまなモードで動作し、レジストリで次のセクションを使用します。

  • ネイティブ モードの 64 ビット プログラムはネイティブ モードで実行され、次のレジストリ サブキーに格納されているアクセス キーと値にアクセスします。

    HKEY_LOCAL_MACHINE\Software

  • 32 ビット プログラムは WOW64 モードで実行され、次のレジストリ サブキーに格納されているアクセス キーと値にアクセスします。

    HKEY_LOCAL_MACHINE\Software\WOW6432node

レジストリ リダイレクト

32 ビットと 64 ビットの COM 登録とプログラムの状態の共存をサポートするために、WOW64 サブシステムは、レジストリの別のビューを使用して 32 ビット プログラムを提供します。 WOW64 サブシステムは、レジストリ リダイレクトを使用して、ビット レベルでレジストリ呼び出しをインターセプトします。 レジストリ リダイレクトにより、レジストリ呼び出しがレジストリ内の正しいブランチに転送されます。

新しいプログラムをインストールするとき、または Windows x64 Edition コンピューターでプログラムを実行すると、64 ビット プログラムによって行われたレジストリ呼び出しは、リダイレクトなしで HKEY_LOCAL_MACHINE\Software レジストリ サブキーにアクセスします。 WOW64 は、32 ビット プログラムによって行われた HKEY_LOCAL_MACHINE\Software へのレジストリ呼び出しをインターセプトし、 HKEY_LOCAL_MACHINE\Software\WOW6432node サブキーにリダイレクトします。 WOW64 は、32 ビット プログラム呼び出しのみをリダイレクトすることで、プログラムが常に適切なレジストリ サブキーに書き込めるようにします。 レジストリ リダイレクトでは、プログラム コードを変更する必要はありません。このプロセスはユーザーに対して透過的です。

リダイレクトに含まれるレジストリ サブキー

次のレジストリ サブキーは、Windows x64 Edition オペレーティング システムの現在のバージョンでリダイレクトされます。

  • HKEY_LOCAL_MACHINE\Software\Classes
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Ole
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
  • HKEY_LOCAL_MACHINE\Software\Microsoft\COM3
  • HKEY_LOCAL_MACHINE\Software\Microsoft\EventSystem

重要

レジストリ キーのリダイレクトは、新しいバージョンのオペレーティング システムで変更される可能性があります。 ソフトウェア開発者は、リダイレクトされたキーの以前に文書化されたリストに基づくプログラム コードを記述しないようにすることをお勧めします。 代わりに、レジストリの 32 ビットまたは 64 ビットの論理ビューを呼び出す前に、リダイレクトの状態を確認するコードを記述する必要があります。

レジストリのリフレクション

レジストリ リフレクションは、レジストリの 32 ビットセクションと 64 ビット セクションを常に開いたままにするリアルタイムメソッドを提供します。 たとえば、32 ビット OLE サーバーとして機能するが、64 ビット クライアントからの要求にも対応できる、Hello.exeという名前の 32 ビット プログラムがあるとします。 レジストリ リフレクションを使用すると、Hello.exe プログラムは 32 ビット レジストリと 64 ビット レジストリの両方を開いたままにして、32 ビットと 64 ビットの両方のプログラム呼び出しを処理できます。

リフレクションを使用すると、ネイティブ操作と WOW64 操作を同時にサポートするために、同じレジストリの 2 つの物理コピーが存在する可能性があります。 反映されるキーのほとんどは、クラス キーです。 クラス キーは "最後のライター優先" の理念で書き込まれ、32 ビットまたは 64 ビットのクラス キーが書き込まれ、閉じられると、キーのハンドルが閉じられます。

次の一覧には、"最後のライターが勝つ" 理念の例をいくつか示します。

  • Windows x64 Edition オペレーティング システムのクリーン インストールを実行すると、.doc ファイルを処理するために 64 ビット バージョンのWordpad.exeが登録されます。 レジストリ リフレクタは、64 ビット レジストリ セクションから 32 ビット レジストリ セクションに.doc登録をコピーします。
  • 32 ビット バージョンの Microsoft Office をインストールすると、32 ビット レジストリ ビューで.docファイルを処理するためにWinword.exeが登録されます。 レジストリ リフレクターは、この情報を 64 ビット レジストリ セクションにコピーします。 そのため、32 ビット プログラムと 64 ビット プログラムの両方で、.doc ファイルの 32 ビット バージョンのWinword.exeが開始されます。
  • 64 ビット バージョンの Microsoft Office をインストールすると、.doc ファイルを処理するために、64 ビット バージョンのWinword.exeが 64 ビット レジストリ セクションに登録されます。 レジストリ リフレクタは、この情報を 32 ビット レジストリ セクションにもコピーするため、32 ビット プログラムと 64 ビット プログラムの両方で、.doc ファイルの 64 ビット バージョンのWinword.exeが開始されます。

Note

開発者は、RegQueryReflectionKey 関数を使用して特定のキーのリフレクション状態を判断し、RegDisableReflectionKey 関数と RegEnableReflectionKey 関数を使用して、特定のキーのレジストリ リフレクションをプログラムで無効にして有効にすることができます。

共有レジストリ キー

特定のレジストリ サブキーには、32 ビットと 64 ビットの両方のレジストリ ビューにこれらのキーが表示される場合でも、レジストリの 1 つのコピーにのみ存在する定数情報が含まれています。 これはレジストリ リフレクションと呼ばれます。

Windows x64 Edition オペレーティング システムの現在のバージョンでは、次のレジストリ サブキーは 32 ビットおよび 64 ビット プログラム間で共有され、32 ビットまたは 64 ビット レベルのプログラムまたはプロセスに基づいて書き換えされません。

  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\SYSTEMCERTIFICATES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CRYPTOGRAPHY\SERVICES
  • HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\HCP
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\ENTERPRISECERTIFICATES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSMQ
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\NETWORKCARDS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PROFILELIST
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PERFLIB
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PRINT
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PORTS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\CONTROL PANEL\CURSORS\SCHEMES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\TELEPHONY\LOCATIONS
  • HKEY_LOCAL_MACHINE\SOFTWARE\POLICIES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\GROUP POLICY
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\SETUP\OC MANAGER
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\SOFTWARE\MICROSOFT\SHARED TOOLS\MSINFO
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\SETUP
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CTF\TIP
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CTF\SYSTEMSHARED
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTSUBSTITUTES
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTDPI
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\FONTMAPPER
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\RAS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\DRIVER SIGNING
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\NON-DRIVER SIGNING
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CRYPTOGRAPHY\CALAIS\CURRENT
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CRYPTOGRAPHY\CALAIS\READERS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\TIME ZONE
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\TRANSACTION SERVER
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\DFS
  • HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\TERMSERVLICENSING

重要

レジストリ キーのリフレクションは、新しいバージョンのオペレーティング システムで変更される可能性があります。 ソフトウェア開発者は、以前に文書化された反映キーの一覧に基づくプログラム コードを記述しないようにすることをお勧めします。 代わりに、プログラムがレジストリの 32 ビットまたは 64 ビットの論理ビューを呼び出す前に、リフレクションの状態を確認するコードを記述する必要があります。

レジストリ エディターの変更

32 ビット バージョンと 64 ビット バージョンの両方のレジストリ エディターは、x64 Edition オペレーティング システムに含まれています。 Windows x64 Edition コンピューター上のレジストリの 64 ビットおよび 32 ビット プログラム セクションを理解するには、次のいずれかの方法を使用します。

64 ビット バージョンのレジストリ エディターを起動するには

  1. 管理アクセス許可を持つアカウントを使用して、Windows x64 Edition コンピューターにログオンします。
  2. [スタート][ファイル名を指定して実行] の順にクリックし、[名前] ボックスに「regedit」と入力し、[OK] をクリックします。
  3. レジストリ エディターで、次のレジストリ サブキーを見つけて調べます。 HKEY_LOCAL_MACHINE\Software\WOW6432node

32 ビット バージョンのレジストリ エディターを起動するには

[ Start] をクリックし、[ Run] をクリックし、[ Open ボックスに Windows x64 Edition\Windows\syswow64\regedit.exe m をインストールしたドライブ文字を入力し、 OK をクリックします。 m スイッチを使用すると、レジストリ エディターの複数のインスタンスを実行できます。

Note

Microsoft Windows Server 2003 Service Pack 1 (SP1) 以降のコンピューターまたは Windows x64 Edition ベースのコンピューターにログオンし、リモート デスクトップ プロトコル (RDP) を使用して別の Windows Server 2003 SP1 以降のコンピューターまたは Windows x64 Edition ベースのコンピューターに接続すると、リモート コンピューター上のレジストリの 64 ビット セクションを表示できます。 ただし、SP1 またはその他の 32 ビット Windows オペレーティング システムにアップグレードされていない Microsoft Windows Server 2003 コンピューターにログオンすると、リモート コンピューター上のレジストリの 32 ビット セクションのみを表示できます。

x64 ベースバージョンの Windows のテクニカル サポート

ハードウェアに Windows x64 エディションが既にインストールされている場合、ハードウェアの製造元は Windows x64 エディションのテクニカル サポートとサポートを提供します。 つまり、Windows x64 エディションをハードウェアにインストールしたハードウェアの製造元がサポートを提供します。 ハードウェアの製造元は、独自のコンポーネントを使用して Windows x64 エディションのインストール環境をカスタマイズしている場合があります。 独自のコンポーネントとして特定のデバイス ドライバーが組み込まれていることや、ハードウェアのパフォーマンスを最大限に発揮させるためのオプション設定が組み込まれていることがあります。 Windows x64 エディションに関する技術的なヘルプが必要な場合は、Microsoft が妥当な労力のサポートを提供します。 しかし、製造元がハードウェアにインストールして提供するソフトウェアについては製造元によるサポートが最適であるため、 ハードウェアの製造元に直接お問い合わせいただくことが必要な場合があります。 Windows Server 2003 x64 エディションなどの Windows x64 エディションを個別に購入した場合は、テクニカル サポートについて Microsoft にお問い合わせください。