Longhornに向けて変わるデバイスドライバ(3/3 ページ)

» 2005年05月25日 15時49分 公開
[下村恭(ハンズシステム),ITmedia]
前のページへ 1|2|3       

変わる、デバイスドライバの構造

 デバイスドライバの構造が変わると言うとベンダーの方々は驚くかもしれないが、従来のデバイスドライバが使用できなくなるというわけではない。しかし、デバイスドライバの信頼性を向上させるためにマイクロソフトではさまざまな取り組みが行われており、その一環としてLonghornに向けてデバイスドライバの仕組みが変わっている。

 従来は、一般的にWDM(Windows Driver Model)、場合によってはミニポートドライバという仕組みでドライバを作成していたが、これからはWDF(Windows Driver Foundation)という仕組みとなる。

 WDMやミニポートドライバでは、プラグ&プレイや電源管理を実現するのが大変困難で複雑であった。このため、電源管理などは細かな制御がされる代わりに、単にオンオフの制御だけという場合も見受けられた。また、開発言語もCに限定され、デバイスドライバの開発は特殊技能に分類されることとなった。

 WDFでは、開発言語CやC++と言った言語を使用できる。また、多くのデバイスクラスにおいて、マイクロソフトがサンプルとなるコードを用意しているうえ、WDFで用意しているファンクションがかなり高度なものであるため、容易にデバイスドライバを開発できるようになっている。

 ベンダーにとって利点となるのは、WDFを使用すると、Windows OSのバージョンに依存しないデバイスドライバが開発できるという点もあげられる。従来のようにOSのバージョン毎にDDIを定義し直すという必要がなくなる。

 WDFでは、デバイスドライバを明確にユーザーモードとカーネルモードに分類している。ご存じのように、ユーザーモードのデバイスドライバであれば、ブルースクリーンやOSのクラッシュという事態を避けることが可能だ。従来からこの2つのモードは存在するのだが、なかなかユーザーモードを使用したデバイスドライバが普及しないためか、WDFでは一層明確にされている。

 ユーザーモードのドライバを開発するときはUser Mode Driver Framework(UMDF)を、カーネルモードのドライバではKernel Mode Driver Framework(KMDF)を、それぞれ使い分けるようになっている。どちらのモードを使うべきかについての指針として、ハードウェアのレジスタに直接アクセスする必要がある場合や、割り込みやDMAを必要とする場合はカーネルモードを、それ以外ではユーザーモードを使用することが勧められている。

 さらに、ドライバの信頼性を向上させるためのVerification Toolsとして、Static Driver Verifier(SDV)、PREfast for Drivers(PFD)というツールが用意されているという点も見逃せない。これらのツールを使用することで、スタティックではあるが、ドライバソフトウェアのソースコードを精査し、ブルースクリーンの原因となるメモリリークやNULLポインタというソースコード上のバグを洗い出してくれる。これらのツールの使用は、WindowsLOGOプログラムの要件ともなるそうなので、デバイスドライバの開発者には必須のツールといえるだろう。ダイナミックにデバイスドライバを検査してくれるツールも開発されているということなので、これから開発されるデバイスドライバは、より信頼性の高いものになっていくはずだ。

 デバイスドライバの信頼性の向上という点でベンダーが利用できる有効な手段として、Windows Error Reportsがある。マイクロソフトで収集しているクラッシュなどの情報を、デバイスドライバのデバッグに利用するというものだ。そして、ベンダーが修正したデバイスドライバはWindows Updateを通じて、ユーザーに配布することができる。

 Windowsが64bit化するにあたり、デバイスドライバなどの領域では、ソフトウェアの書き直しを伴う移行が必要となる。今回のWin HEC 2005 Highlightsでは、Longhorn クライアントのリリースが2006年末とアナウンスされた。つまり、ここ1年が移行の勝負となるということだ。開発者は情報の収集だけでなく、実際の開発に入らなければならない時期に来ている。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ