マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

WOW64についての情報を纏めている。

とは?

仕組み

32ビットアプリ → (が、64bit OS上の)WOW64レイヤー(で動作し、) → 64ビットカーネル(との間を仲介する)という流れで動作

API変換

32ビットアプリが呼び出すWin32 APIを、64ビットカーネル向けに変換。

アドレス空間の制御

32ビットアプリは最大4GBの仮想メモリ空間を利用可能(通常2GB)。

ファイルシステム・リダイレクト

レジストリ・リダイレクト

FAQ

Q: 16ビットアプリは動く?

A: 64ビットWindowsでは16ビットアプリは動かない(NTVDMがない)。

Q: ARM64版Windowsでは?

A: WOW64の仕組みを拡張したWOW64ECでx86アプリをエミュレーションできる。

Q: 64ビットDLLは呼び出せる?

A: 結論から言うと、WOW64上の32ビットVB6アプリから64ビットDLLを直接呼び出すことはできない。

プログラム開発

64bitかWOW64(32bit)かを見分ける

.NET

VC++

タスクマネージャ等

名前の後ろに

表示される。

システムファイル、レジストリのリダイレクト

レジストリ・リダイレクター

ファイルシステム・リダイレクター

リダイレクトされないフォルダ

Program Files のフォルダの場合は少々勝手が違ってきます。

リダイレクタが問題になるケース

COM開発・利用

登録

開発したCOMを登録するRegsvr32にも32版64版があります。

- 64 ビット版は %systemroot%\System32\regsvr32.exe です。
- 32 ビット版は %systemroot%\SysWoW64\regsvr32.exe です。
参照URL: http://support.microsoft.com/kb/249873/ja

DCOM

COMの設定を行うdcomcnfg.exeにも32bit版があるもよう。

dcomcnfg.exe /32

COMクライアント

VBS

Office VBA

ASP

コチラを参照。

データプロバイダ

ここでは、32bit用、64bit用データプロバイダに起因する問題をまとめています。
ADO.NETデータプロバイダ一般的なトピックはコチラを参照下さい。

ODP.NET

組合

インストール

ODBC

Windows 7(64bit) / Office 2010(32bit) 環境での検証結果

※1:C:\Windows\System32\odbcad32.exe
※2:C:\Windows\SysWOW64\odbcad32.exe

OLEDB

なお、OLEDBについては、2008R2 64bit上で32bit、64bitの両方の
Jet OLE DB プロバイダが存在し、それぞれ動作したことを確認しています。

問題は、OLEDBが64ビットに対応していない件ですが、以下の代替のドライバがあり、
これをインストールしてConnectString?を変更することにより、プログラム変更なく動作しました。

OO4O

実際は、WOW64環境もサポートされていないようです(Windows Server 2008 R2以降への以降はNG)。

その他

コード・アクセス・セキュリティ ポリシーの設定

こちらにも同様に32bit設定と64bit設定があるようです。
ホストするアプリが32bitの場合、対象アプリが64bitでも、
32bitのコード・アクセス・セキュリティ ポリシー設定を参照するようです。

IE9(32bit) → Excel2010(64bit) → DLL(64bit) といった動作をする場合、
実行するプロセスは 64bit だが、CAS 設定は IE9 から、32bit のものを参照している。

参考情報


Tags: :Windows, :移行, :.NET開発


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS