Microsoftは米国時間2020年2月12日、オンライン仮想イベントである「Microsoft 365 Developer Day」を開催し、2画面デバイスのSurface Neoが搭載するOS「Windows 10X(https://news.mynavi.jp/article/20191003-903496/)」に関する解説を行った。Windows 10Xでは、実行するアプリによって異なるコンテナを実装し、UWP(Universal Windows Platform)アプリは「Native Containers」、Win32やWPF、Windowsフォームで作成したアプリをパッケージ化する「MSIX Containers」を利用する。そして新たに開発したのが、Win32アプリに対してMSIX Containersよりも高い互換性を持つ「Win32 Containers」だ。

  • Windows 10Xに実装した3つのコンテナ

Win32コンテナでは、MSIX ContainersやWin32 Containers経由でWin32アプリを実行し、UWP Native Containersを経由して、Windows 10Xのディスプレイに描画される仕組みのようである。Windowsでは定番のWindowsフォルダーやユーザーフォルダーへのアクセスはもちろん、環境変数やAPIを利用した参照、ドキュメントフォルダーに代表されるユーザー固有フォルダーなどへのアクセスも可能。

利用可能なハードウェアはマウス、キーボード、ペン(タッチを含む)、ネットワーク、プリンター、カメラ、マイク、GPSなどを用いたロケーションセンサーに限定し、一般的ではないデバイスドライバーを必要とするデバイスは非サポートとなる。また、バッテリー消費を節約するため、Win32アプリのウィンドウ非描画時は消費リソースを減らしてWin32アプリをサスペンド。ただし、Win32 Container自身は常に動作するのは、Win32アプリ実行時の応答性に配慮した結果だろう。

  • Win32 ContainerとWin32アプリの関係図

2画面デバイスのSurface Neoを購入しようと考えたときに気になる点の1つは、ファイル操作だろう。現時点のWindows 10Xエミュレーターイメージ(ビルド19563)では、UWP版エクスプローラーを用意しており、Win32版ほどではないが必要最低限のファイル操作は可能だった。

  • Windows 10で動作するWindows 10Xエミュレーター

前述のとおり、MicrosoftはWin32アプリとバッテリー消費に重点を置いているが、仮想イベントでは「多くのケースでデスクトップPCと比べてパフォーマンスが向上する」と説明している。さすがのその言葉を鵜呑みにはできないが、実用レベルのパフォーマンスに達している程度と認識してもよさそうだ。

  • エミュレーターにはSurface Neoの位置や角度を調整する機能も備える

Win32 Containerは有用に思えるが、現時点では制限もある。「ログオン時にスタートアップタスクが動作しない」「NTサービスを含んだバックグラウンドタスクが中断する場合がある」「システムツールはWin32 Containerの外(=Windows 10X)をのぞけない」「ハイブリッドWin32/UWPアプリ(両者の垣根を越えた『Windowsアプリ』と思われる)は現時点で未サポート」――などだ。

  • Visual Studioでビルドしたメモ帳アプリをデバイスポータル経由で実行するデモンストレーション(公式動画より抜粋)

今回のエミュレーターやSDKのリリースはアプリ開発者向けであり、エンドユーザーが試しても新時代のユーザー体験はさほど感じられないだろう。もしWin32アプリを開発しているなら、Visual Studio 2019プレビューなどをインストールし、Windows 10Xエミュレーターで正常動作するか試してみるのも一興だ。1人のユーザーとしてWindows 10Xの品質や精度向上に期待したい。

阿久津良和(Cactus)