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

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

適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 896459

概要

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、次の記事番号をクリックして、「Microsoft サポート技術情報: Windows でレジストリをバックアップおよび復元する方法 」322756 の記事を参照してください

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

レジストリ リダイレクト

WOW64 サブシステムは、32 ビットと 64 ビットの COM 登録とプログラムの状態の共存をサポートするために、レジストリの別のビューを使用して 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 ビットの両方のプログラム呼び出しを処理できます。

リフレクションを使用すると、同じレジストリの 2 つの物理コピーが存在し、ネイティブ操作と WOW64 操作を同時にサポートできます。 反映されるキーのほとんどは、クラス キーです。 クラス キーは "最後のライター優先" 哲学で書き込まれ、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 が開始されます。

注:

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

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

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

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

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

注:

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 にお問い合わせください。