WOW64
女性限定!マヂ売れすぎ
アソコ専用ソープ!最後の半額

[Wikipedia|▼Menu]

WOW64(ワウ64、Windows-On-Windows 64)とは、64ビット版のMicrosoft WindowsWindows XPWindows Server 2003及びWindows Vistaの一部)においてWin32アプリケーションを実行する、エミュレーションレイヤー・サブシステムである。
目次

1 概要

2 構造

3 問題点

4 プログラミング

5 リンク

//


概要

64ビット版のWindowsは基本的に、完全に64ビット化された64ビットNTカーネルの上にある、Win64サブシステムで動作する。他のx64対応オペレーティングシステムが、32ビットABIを完全に見捨てるか、あるいは完全に互換性を取るかのいずれかの選択をした。64ビットのWindowsでは、64ビットABIと32ビットABIの両方をサポートし、Win32APIをWin64APIに呼び変えるエミュレーション層を実装した。これにより、32ビットアプリケーションはそのまま64ビットのWindowsでも動作する。


構造

WOW64は、WOW64ホストプロセスによって予約された4GBの仮想空間に32ビット ABIのコードを読み込み、そこで発生したWin64 APIに変換可能なAPI呼び出しを変換して、Win64サブシステムに伝達する。構造体のトランケート・エキスパンドは自動的に行われ、Win32側では現在動作しているOSが32ビットシステムか、64ビットシステムかを意識する必要は全くない。またユーザーランドで動作するコンポーネント群は32ビット版と64ビット版が用意され、例えばOLEなどは32bitで閉じた範囲で動作する事ができる。64ビット版で提供されるコードは単一のソースから、32ビット版と64ビット版両方をそれぞれコンパイルして作られている為、機能的には32ビットシステムと64ビットシステムの間に差異は無い。


問題点

Windowsの64ビットABIは、そのままWin32の32ビットABIを64ビットに拡張した物である。従って、64ビットABIのアプリケーションは8TBのアドレス空間を独占的に使える様になっている。ここに一つの問題点がある。32ビット ABIのコードを格納可能な仮想空間下位4GBが64ビットABIに独占されてしまった事である。この為、32ビットABIを格納する場所が無く、32ビットアプリケーションはもとより、DLLOCXをロードして呼び出す事も出来なくなってしまった。事実マイクロソフトは、32ビットABIのコードと64ビットABIのコードを相互に呼び出す事を禁止している(COMインターフェースを経由して相互乗り入れは可能であるが、x64アーキテクチャで本来可能であったシームレスな32ビットコードと64ビットコードの相互呼び出し機能は全く生かされていない)。この顕著な例として、Internet Explorerの振舞があげられる。32ビットのActiveXコンポーネントを検出すると、64ビット版Internet Explorerは処理を中断して32ビット版Internet Explorerに処理を引き継ぐ。32ビットアプリケーションと64ビットアプリケーションの間には、実行ファイル以外のコンポーネント群を互いに利用する事が出来ない深い溝がある。


プログラミング

16bit時代から32bitへの過渡期に用意されたthunkメカニズムはWOW64では提供されていない。 その代わり異なるABI間の呼び出しは、外部プロセスCOMインターフェースによって可能である。 なお前述の通り基本的にInprocサーバーは使用できない。 外部プロセスCOMインターフェースにより、ABI間のマーシャリングがMIDL情報を元にWOW64によって行われ、例えば64ビットプロセスから32ビットプロセスのメソッドを呼び出す事ができる(逆も可能である)。 この機能は非常に重要な機能を提供する。 2007年現在、Windowsアプリケーションやミドルウエアの殆どはx64に移植されていない。 よってこれらのソフトウエア資源を継承しつつ、x64に対応したアプリケーションを開発するには、WOW64の機能を使って32bitソフトウエア資源へのアクセスを確保し、64ビットアプリケーションに対してCOMインターフェースの形で提供する事で、異なるABIが混在する過渡期を乗り越える事ができる。 またCOMインターフェースの形をとる事により、.NET Frameworkへのアクセスも用意できる。


リンク

Running 32-bit Applications - Platform SDK: 64-bit Windows Programming - MSDN Library

・話・編・歴Windowsコンポーネント

コアAero ・ ClearType ・ DWM ・ DirectX ・ Windows デスクトップサーチ ・ エクスプローラ ・ シェル(シェル名前空間 ・ スタートメニュー ・ タスクバー ・ 特殊フォルダ ・ 関連付け ・ GDI ・ Windows Imaging Format ・ 次世代TCP/IPスタック ・ .NET Framework ・ 音声 ・

アプリケーションとツールバックアップと復元センター ・ 電卓 ・ カレンダー ・ 文字コード表 ・ Cmd.exe ・ Contacts ・ コントロールパネル ・ アプレット ・ スキャンディスク ・ デバイスマネージャ ・ ディスク クリーンアップ ・ デフラグ ・ DVDメーカー ・ イベントビューア ・ FAXとスキャン ・ Windows 画像とFAX ビューア ・ Internet Explorer ・ Mail ・ 拡大鏡 ・ 管理コンソール ・ Media Center ・ ミーティングスペース ・ Windows Mobileデバイスセンター ・ Mobility Center ・ ムービーメーカー ・ ナレータ ・ メモ帳 ・ ペイント ・ フォトギャラリー ・ PowerShell ・ 外字エディタ ・ 問題の報告と解決 ・ リモートアシスタンス ・ サイドバー ・ Snipping Tool ・ サウンド レコーダー ・ Sysprep ・ システム構成ユーティリティ ・ システムファイルチェッカー ・ システムの復元 ・ UNIXサブシステム ・ Windowsインストーラ ・ Windows Media Player ・ 音声認識 ・ タスクマネージャ ・ Microsoft Update/Windows Update ・ ワードパッド ・ WinSAT ・ Windows Journal

カーネルNtoskrnl.exe ・ HAL ・ アイドルプロセス ・ Svchost.exe ・ レジストリ ・ Windowsサービス ・ サービスコントロールマネージャ ・ WOW/WOW64 ・ DLL ・ EXE ・ NTLDR/ブートマネージャ ・ Winlogon ・ 回復コンソール ・ I/O ・ WinRE ・ WinPE ・ カーネルパッチ保護


モバゲーを超えたコミュ!
[モバコミ]なら会えるさ

[次ページ]
[オプション/リンク一覧]
[記事の検索]
[おまかせ表示]
[トップページ]
[ニュースをチェック!]
[列車運行情報]
Size:13 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:Mamenoki