Windows on Armでx64アプリが動くのはなぜ?Prismの仕組みとArm64ネイティブ版との違い

当ページのリンクには広告が含まれています。
x86・x64アプリをPrismでArm64へ変換し、Snapdragon搭載Windows PCで実行するイメージ

Microsoftは2026年8月25日、Windows on Armのアプリ対応状況を公開しました。Linaroが運営し、Microsoftの互換性データも利用している「Works on Windows on Arm(Works on WoA)」にはWindows on Armで利用できることが確認されたアプリ・ゲームが7,000本以上掲載されています。

今回はWindows on Armでx64アプリが動く仕組みと、その裏側で働いている「Prism」というエミュレーターについてまとめてみます。Arm64ネイティブ版とエミュレーション版で何が違うのか、ドライバーだけ動かないことがあるのはなぜかもあわせて解説します。

目次

Windows on Armとは

Windows on Armは、Arm系のCPU(Snapdragon Xシリーズなど)を搭載したPCで動くWindowsのことです。本記事ではPrismを搭載したWindows 11 24H2以降を中心に扱います。IntelやAMD製のx86系CPUではなくスマートフォンなどでもおなじみのArmアーキテクチャを採用しているのが特徴です。

バッテリー持ちの良さや、LTE・5Gなど常時接続に対応しやすい点がメリットとしてよく挙げられます。Microsoft Surfaceのほか、ASUSやDell、HP、Lenovo、MSIなど主要メーカーからもArm版のWindows PCが出ていて、今年はNVIDIAのRTX Spark搭載機もラインナップに加わる予定です。

長らく課題として挙げられてきたのが、対応アプリの少なさでした。ただし2026年8月25日のMicrosoftの発表では、Windows on Armで利用できることが確認されたアプリ・ゲームが7,000本を超えたと案内されていて、状況はかなり変わってきています。この数にはArm64ネイティブ版だけでなく、エミュレーションで動作するアプリも含まれます。

x64アプリはそのまま動く?

Arm64ネイティブ版が無いアプリでも多くの場合はそのままインストールして動かせます。

Windows 11 on Armには「エミュレーション」という仕組みが備わっていて、x86(32bit)・x64(64bit)どちらのアプリもArm64のCPU上で動かせるようになっています。Microsoft公式のドキュメントでもWindows 11 on Armはx86とx64両方のアプリのエミュレーションに対応していると説明されています。

ちなみにWindows 10 on Armの時代はx86アプリのエミュレーションのみ対応でx64アプリは動きませんでした。x64アプリまでエミュレーションできるようになったのはWindows 11からです。

Prismって何をしている仕組み?

このエミュレーションを担っているのが「Prism」です。Windows 11 24H2から搭載されている新しいエミュレーターでQualcomm Snapdragon向けに最適化されています

Microsoft公式ドキュメントの説明を筆者なりにかみ砕くとPrismはだいたい次のような動きをしています。

  • アプリが実行しようとするx86/x64の命令を必要になったタイミングでArm64の命令へその場で変換する(JITコンパイル)。
  • 変換済みの命令ブロックはキャッシュとして保存しておき、同じコードが再び実行されるときはキャッシュを再利用する。
  • このキャッシュはアプリ単位ではなくモジュール(DLLなど)単位で作られるので、別のアプリが同じモジュールを使う場合初回起動時からキャッシュの恩恵を受けられることもある。
Windows on Armでx86・x64アプリをPrismでArm64命令へ変換する流れと、Arm64ネイティブアプリを直接実行する流れの比較図
x86・x64アプリはPrismで命令をArm64へ変換し、Arm64ネイティブアプリは変換せず実行されます。WOW64とArm64XではWindows機能へのアクセス方法が異なります。

毎回ゼロから変換し直すのではなく一度変換した分は使い回すことでオーバーヘッドを減らしていく仕組みですね。

x86とx64ではOSとの橋渡しが違う

x86アプリとx64アプリはどちらもPrismで命令をArm64へ変換しますが、Windowsのシステム機能へつなぐ仕組みが異なります。

x86アプリではPrismによる命令変換に加えて「WOW64」という互換レイヤーが使われます。WOW64は64bit版Windowsで32bitのx86アプリを動かすための仕組みで、Arm版Windowsでもファイルシステムやレジストリのリダイレクトを担当します。そのため、x86アプリからSystem32へアクセスすると、必要に応じてSysWOW64へリダイレクトされます。


System32とSysWOW64の関係については以下の記事でも詳しく解説しているので、気になる方はあわせてどうぞ。

x64アプリの命令もPrismがArm64へ変換しますが、x86アプリのようなWOW64レイヤーは使いません。Windowsのシステムバイナリは「Arm64X PEファイル」という形式で用意され、x64プロセスとArm64プロセスの双方から同じ場所にあるファイルを読み込めます。そのため、x64アプリはWOW64によるファイルシステムやレジストリのリダイレクトを受けずにWindowsの機能を利用できます。

項目x86アプリ(32bit)x64アプリ(64bit)
命令の変換PrismPrism
OSとの橋渡しWOW64レイヤーArm64X形式のWindowsシステムバイナリ
System32へのアクセスSysWOW64へリダイレクトリダイレクトなし
レジストリ32bit用のビューへリダイレクトWOW64によるリダイレクトなし

エミュレーションすると遅くなる?

エミュレーションである以上ネイティブのArm64アプリと比べると多少のオーバーヘッドは避けられません。命令をその場で変換する処理が挟まる分だけ、CPUリソースを余計に使うことになるからです。

PrismにはCPU使用率を抑える最適化と変換済みコードのキャッシュがあるため、従来のエミュレーションより負荷を減らせる設計です。実際のパフォーマンス差はアプリの種類や処理内容によって変わります。

負荷の大きいゲームや動画編集、CADなど処理をフルに使うようなアプリではArm64ネイティブ版とのパフォーマンス差がまだ出やすい分野だと言われています。


似たような「ホストとゲストのアーキテクチャが一致していないと遅くなる」という現象は、Android Studioのエミュレーターでも起こります。x86_64のWindows PCでarm64-v8aのシステムイメージを選んでしまうと、VMアクセラレーションが効かず動作が重くなることがあるという話を以下の記事でも扱っているので、開発環境まわりで困っている方は参考にしてみてください。

Arm64ネイティブ版があるなら選ぶ意味はある?

エミュレーションでも普通に動くのにわざわざArm64ネイティブ版を選ぶ意味はあるのか、と思う人もいるかもしれません。

Microsoftの開発者向けドキュメントでも、x64・x86のエミュレーションは有効な選択肢としつつArm64ネイティブ版に切り替えることで次のようなメリットがあるとされています。

  • CPUやGPU、NPUの性能をフルに活かせる。
  • バッテリーの消費を抑えられる。
  • エミュレーション特有の変換オーバーヘッドが無くなる。

Microsoft 365(Teams、Word、Excelなど)やChrome、Spotify、Zoomといった主要アプリはすでにArm64ネイティブ版が用意されています。よく使うアプリについてはArm64ネイティブ版が出ているかどうかを一度確認してみる価値はありそうです。

ドライバーだけ動かないのはなぜ?

Prismがエミュレーションできるのはユーザーモードのアプリコードでドライバーは対象外です。カーネルモードドライバーだけでなくUser-Mode Driver Framework(UMDF)ドライバーやプリンタードライバーもArm64向けに用意する必要があります

VPNクライアントやセキュリティソフト、一部の周辺機器向けアプリではアプリ本体がx64で動いても必要なドライバーがArm64に対応していなければ正常に動きません。「ほかのアプリは動くのに特定のアプリや機器だけ動かない」という場合はArm64対応ドライバーの有無が原因候補の一つです。

タスクマネージャーでアプリのアーキテクチャを確認する方法

今動いているアプリがネイティブのArm64版なのか、エミュレーションのx86/x64版なのかは、タスクマネージャーで確認できます。

  1. タスクマネージャーを開き「詳細」タブを選びます。
  2. 列見出しを右クリックして「列の選択」を開きます。
  3. 一覧から「アーキテクチャ」にチェックを入れます。
  4. 各プロセスの「アーキテクチャ」列を確認します。ARM64はArm64ネイティブ版、x86またはx64はエミュレーションで動作するアプリです。ARM64 (x64 compatible)と表示される場合はArm64EC版で、Arm64ECコードとエミュレーションされたx64コードを同じプロセス内で併用できます。

Arm64ECでは、メインの実行ファイルがArm向けでもx64形式のプラグインやライブラリがエミュレーションで動いている場合があります。そのため、ARM64 (x64 compatible)すべての処理がArm64ネイティブという意味ではありません

Microsoft StoreはArm64版を優先的に選ぶ

Microsoft Storeからアプリをインストールする場合、Windows側でアーキテクチャを自動的に選んでくれる仕組みがあります。

Microsoft公式ドキュメントによると、開発者がx86・Arm32・Arm64の複数バージョンをストアに提出している場合Windows 11は自動的にArm64版をインストールします。Arm64版が無くArm32版とx86版だけが提出されている場合はArm32版が、x86版のみの場合はx86版がインストールされエミュレーションで動く、という優先順位になっています。

自分でアーキテクチャを選ぶ必要はなく、Storeから入れれば基本的に一番相性の良いバージョンが選ばれる仕組みです。ただしStore以外の配布元からアプリをダウンロードする場合は、Arm64版のインストーラーが用意されていれば自分で選ぶ必要があります。

よくある質問

Arm64版・x64版・x86版のどれを選ぶべき?

配布元がArm64版を用意している場合はやはりArm64版を選ぶのが基本です。Arm64版が無い場合、Windows 11 on Armではx64版とx86版のどちらもエミュレーションで動かせます。プラグインや外部コンポーネントを含むアプリでは配布元が対応アーキテクチャを指定していることがあります。まず公式の対応情報を確認し、x64版が正常に動かない場合はx86版を試してください。

事前にWindows on Armで動くか確認する方法は?

Linaroが運営するWorks on WoAで対応状況を検索できます。Arm64ネイティブまたはエミュレーションで動作することが確認されたアプリ・ゲームが掲載されています。ですが周辺機器やドライバー、アプリのバージョンによって結果が変わるため、配布元の対応情報もあわせて確認してください。

ゲームはArm版Windowsで遊べる?

多くのゲームはx64版がエミュレーションで動きます。カーネルモードで動く一部のアンチチート(不正防止)機構を使っているタイトルはドライバーと同じ理由でうまく動かないことがあります。事前にWorks on WOAなどで対応状況を確認しておくのが安全です。

まとめ

  • Windows 11 on ArmはPrismというエミュレーターで、Arm64ネイティブ版が無いx86/x64アプリもそのまま動かせるようになっているよ。
  • x86/x64アプリの命令はPrismが変換し、x86ではWOW64、x64ではArm64X形式のWindowsシステムバイナリがOSとの橋渡しをするよ。
  • 変換したコードはキャッシュされるので、2回目以降の実行はオーバーヘッドが減るよ。
  • ドライバーはエミュレーションの対象外だから、VPNやセキュリティソフトなどはArm64ネイティブ版が必要になることがあるよ。
  • Microsoft Storeから入れれば、基本的に一番相性の良いバージョンを自動で選んでくれるよ。

Windowsの設定やトラブル解決などほかの記事も確認したい方はWindowsまとめから目的に近い記事を探せます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次