デフォルトでは、WOW64で実行されている32ビットアプリケーションは32ビットレジストリビューにアクセスし、64ビットアプリケーションは64ビットレジストリビューにアクセスします。次のフラグにより、32ビットアプリケーションが64ビットレジストリビューのリダイレクトされたキーにアクセスし、64ビットアプリケーションが32ビットレジストリビューのリダイレクトされたキーにアクセスできるようになります。これらのフラグは、共有レジストリキーには影響しません。詳細については、「WOW64の影響を受けるレジストリキー」を参照してください。
フラグ名 | 値 | 説明 |
KEY_WOW64_64KEY | 0x0100 | 32ビットまたは64ビットアプリケーションから64ビットキーにアクセスします。 |
KEY_WOW64_32KEY | 0x0200 | 32ビットまたは64ビットアプリケーションから32ビットキーにアクセスします。Windows10 on ARM:これは、32ビットARMプロセスの32ビットARMレジストリビューおよび32ビットARMプロセスの32ビットx86レジストリビューを指します。 32ビットx86および64ビットARM64プロセス。 |
これらのフラグは、次のレジストリ関数のsamDesiredパラメータで指定できます。
KEY_WOW64_32KEYまたはKEY_WOW64_64KEYのいずれかを指定できます。両方のフラグが指定されている場合、関数はERROR_INVALID_PARAMETERで失敗します。
Windows Server 2008、Windows Vista、Windows Server 2003およびWindows XP:両方のフラグが指定されている場合、関数の動作は未定義です。
RegDeleteKey関数を使用して、代替レジストリビューにアクセスすることはできません。
以下は、アプリケーションからレジストリにアクセスする際のベストプラクティスです。
- アプリケーションがフラグの1つを使用して代替レジストリビューにアクセスした後、子レジストリキーに対する後続のすべての操作(作成、削除、または開く)は、同じフラグを明示的に使用する必要があります。そうしないと、予期しない動作が発生する可能性があります。
- 両方のビューですべてのキーを正確に列挙するには、2つのパスで列挙を実行します。最初のパスはフラグの1つで開かれたハンドルを使用し、他のパスは他のフラグで開かれたハンドルを使用する必要があります。
注意
WMIを介して代替レジストリビューにアクセスする方法については、64ビットプラットフォームでのWMIデータの要求を参照してください。
関連トピック