組み込み機器のWindows 7からWindows 10への移行で考慮すべき互換性問題待ったなし!組み込み機器のWindows 10 IoT移行(2)(2/3 ページ)

» 2018年07月27日 10時00分 公開

ソフトウェアの互換性(1):デバイスドライバ

 Windows 10で新規にハードウェア構成を決定する場合、Windows 10用のデバイスドライバが用意されていることがほとんどです。しかし、Windows 7世代のハードウェアのままWindows 10世代へ移行する場合など、個別の動作確認や評価により、Windows 7用のデバイスドライバを使用する事を検討するケースも出てくるかと思います。

 本記事ではドライバの作成方法や構造についての説明は行いませんが、基本的にWindowsのドライバは、最低ターゲットオペレーティングシステムを指定する形で作成します。これは例えば「Windows 7 を最低ターゲット オペレーティング システムとして指定したドライバは、Windows 7とそれ以降の新しいバージョンのWindowsで動作する」ということを意味しています。ただしこれは、ドライバの作成時に文書化されている関数を正しい方法で使用している場合に限られており、新しいバージョンのWindowsで使用する場合も十分なテストした上で使用することが推奨されます。

 なお、Windows 10のVersion 1607以降(LTSB2016含む)では、32ビット/64ビットOSのどちらにおいても、全てのカーネルモードドライバはマイクロソフトの署名が付与されている必要があります。従来、32ビットOSでは署名が不要、あるいは64ビットOSにおいてもAuthenticode署名(自己署名)が認められていたのですが、上記の通り要件が強化されているため、Windows 7用ドライバをそのままでは使用できないケースも存在します。

 Windows 10用ドライバの新しい署名ポリシーや署名の入手方法は、マイクロソフトのBlogが参考になるかと思います。

ソフトウェアの互換性(2):アプリケーションやWebアプリケーション

 Windows 10では、従来型のデスクトップアプリ(Win32アプリや.net Framework アプリなど)に加え、UWPアプリ(Universal Windows Platform Application)を動作させることができます。Windows 10で導入されたUniversal Windows Platform APIにより、このコアAPIのみで作成されたアプリは、デスクトップPC用のWindows 10のみならず、Windows 10が動作している全てのデバイスで実行できます。これには、Windows 10 IoT Coreを使用したデバイスや、ゲーム機の「Xbox」、「Windows Mixed Reality」に基づくVR(仮想現実)/AR(拡張現実)デバイスなどが含まれます(図2)。

図2 図2 Windows 10で動作するアプリケーション(クリックで拡大)

 しかしながら本記事は“Windows 7からWindows 10 IoTへの移行”ですので、多くの場合はWindows 7で動作する従来型のデスクトップアプリが既にあり、これがWindows 10 IoT Enterpriseで動作するかが気になるところだと思います。

 従来型アプリケーションについても、デバイスドライバと同様に「文書化されている関数を、正しい方法で使用している場合」に互換性が保たれるとされています。

 ここでは、上記に当てはまらず、プログラムの設計に因って動作に問題が出る例を示します。

1)バージョンチェック

 Windows 7の内部バージョンは6.1、Windows10は10.0です。アプリケーションやインストーラがこの内部バージョンで動作/非動作を判断している場合に、何らかの問題が生じる可能性があります。

2)UIフォント

 Windows Vista〜8.1まで、日本語環境のUIフォントには「メイリオ」が使用されていました。Windows 10ではこれが「游ゴシック」に変更されています。これらのフォントは字幅や改行幅が異なりますので、UIフォントに依存したアプリケーションでは、レイアウトの崩れが発生する可能性があります。

3)Internet Explorer(IE)と連携するアプリ、もしくはWebアプリ

 Windows 7ではIE8〜11、Windows 10ではIE11を使用することができます(ただし、サポートが継続しているのはIE11のみ)。IE11にはエンタープライズモードが用意されており、IE8相当の動作をさせることが可能です。

Copyright © ITmedia, Inc. All Rights Reserved.