「Windows Virtual PC」の内部構造

さて、Virtual PC 2007のバージョンアップ版にあたるWindows Virtual PCだが、大きく異なるのが描画ロジックである。Windows Virtual PCでは、デスクトップの描画をRDP(Remote Desktop Protocol)経由で行ない、前述した仮想アプリケーションモードなどを実現している。その証拠ではないが、<スタート>メニューにあるに<終了オプション>ボタンが<切断>ボタンに変更されている点や、統合機能という名で提供されるホストOSに接続したデバイスやリソースの共有なども、リモートデスクトップ接続で用いられるRDP系技術と同じだ(図629)。

図629: 通常のWindows XPとWindows XP Modeの<スタート>メニュー。Windows XP Modeでは、<終了オプション>ボタンが存在しない

そもそも、Windows Server 2008のターミナルサービスには、従来のデスクトップ全体を提供するリモートデスクトップだけでなく、アプリケーションの画面だけを提供するターミナルサービスRemoteAppという機能を実装している。これは、ユーザーにリモート操作を意識させないための機能で、仮想OSの処理はサーバ側ですべて行ない、その結果をクライアントに転送するというものだ。

また、Windows Server 2008 R2とWindows 7では、RDPの最新版となるバージョン7.0を搭載。各操作をコマンドストリームに変換し、クライアントとサーバのやり取りをシンプル化することでパフォーマンスの向上を実現している。MicrosoftのFuture Technology Daysで提供されたスライドでは、ユーザーモードで動作する各アプリケーションと描画を担うRDP Driver Stackが、最適化されたコマンドストリームで処理されていることが確認できるだろう(図630)。

図630: RDP 7.0に関するグラフィックの主な構成。MicrosoftのFuture Technology Daysで提供されたスライドより

このRDP 7.0の技術を流用し、実現したのが前述したWindows XP Modeの仮想アプリケーションだ。RDP 7.0に搭載された機能を流用するメリットの1つがWindows Aeroの適用。Windows Virtual PCのゲストOSとしてWindows 7をインストールすると、Windows Aeroが有効になり、ウィンドウフレームの半透明化など視覚効果が適用される(図631)。

図631: ゲストOSとしてWindows 7を用いる場合、RDP 7.0の恩恵を受け、Windows Aeroが有効になる

このような利便性はあるものの、以前のVirtual PC 2007や他の仮想環境アプリケーションと比較すると、描画遅延が発生するなど首を傾げる場面が多い。グラフィックスドライバは以前と同じくS3社のTrio32/64という古いGPUを用いているが、Virtual PC用に統合されたものに変更された。また、DirectX診断ツールを用いてみたが、Windows 7に搭載されているバージョン6では、ドライバ名も表示されなくなる(図632~634)。

図632: ゲストOSのグラフィックスドライバは「Virtual PC Integration Components S3 Trio32/64」が用いられる

図633: こちらはWindows XP Modeの「DirectX診断ツール」。「ドライバ」セクションでは「RDPDD.dll」が使用されている

図634: Windows 7上の「DirectX診断ツール」では、グラフィックスドライバの詳細情報を確認できない

今回Windows XP Mode RC版を用いて各機能を見てきたが、同ベータ版と比較すると、大きなロジック変更を発見することはできなかった。メディアファイルの再生は芳しくなく、PCゲーム系は以ての外という有様だ。RCという性格を踏まえると、ここから描画ロジックの改善を行なう可能性は少ない。Windows XP Modeにコンシューマ的役割を求めるのは少々難しいだろう。