活動報告


●第99回セミナー実施報告

日 時:1999年10月6日(水)13:30〜16:15
場 所:東京工科専門学校ICAテラハウスB1Fテラホール
参加人員: 39名
テーマ:『WindowsドライバーソフトDriverStudioの紹介とデモ』
構 成:
 挨 拶
   マイクロソフト株式会社 ビジネスソリューションズ事業部副事業部長 兼
   デベロッパーマーケティング統括部部長 三ヶ野原 敏郎 様
   エクセルソフト株式会社 取締役営業部長 川崎 太 様
 第1部 「今後のWindowsドライバ開発におけるDriverStudioの必要性」
     サイエンスパーク株式会社 三浦 秀朗 様
 第2部 「DriverStudio製品デモ」
     サイエンスパーク株式会社 三浦 秀朗 様

 今回のセミナーは、先に募集しました「会員会社の製品・技術・マーケティング情報の紹介セミナー」の第1弾として、エクセルソフト株式会社からのお申し出により『Windowsデバイスドライバ開発ツール・スイート製品 DriverStudioの紹介とデモ』として開催されました。

第99回セミナー会場

 まず、マイクロソフト株式会社ビジネスソリューションズ事業部副事業部長兼デベロッパーマーケティング統括部部長の三ヶ野原敏郎様よりのご挨拶です。


 「昨年よりWindowsコンソーシアムの技術顧問を担当し、この10月1日からはデベロッパーマーケティング統括部を管轄しており、ソフトウエアハウスさん、ハードメーカーさんなどWindows環境で物を作っていただける皆さんに技術的な情報をお伝え、このようなデベロッパーの皆さんにはマーケティングプログラムを担当している。Windows 2000は、米国本社の方で全世界版を同時に開発を進めており、ベータ3が広く出回ってから久しく経ち、今はRCという仕様を全部フイックスして最終のチューニングを行っている。MSの社員は全員実験台になって使用しており、最終出荷に向けた作業をしている。
 Windows 2000が成功するためには、多くのユーザーさんに使っていただかねばならないが、そのためには多くのパートナーさんにWindows製品を出していただかねばいけない。特にペリフェラル系、ドライバまわりはある意味で特殊であり、レベルの高いテクニックを要するということでデベロッパーの方に声をかけてもなかなか協力していただけずに苦労していた。今回ドライバを作っていただくために『DriverStudio』という有効なツールが出ることにより、私どものWindows 2000が早く立ち上がって、早く世の中に浸透するという意味では、大いに期待している。『DriverStudio』の開発元である米国COMPUWARE社の中にはマイクロソフトに似たような人間が多くいたり、或いは技術的にもマイクロソフト本社との間で交流があったりしていろいろ関連があるので非常に期待している。本日は、エクセルソフトさん、サイエンスパークさんが『DriverStudio』についてお話するという丁度いい機会ですので、今日のセミナーをご理解いただいていろいろな分野に適用していただくことを期待している。マイクロソフトとしても、『DriverStudio』もその1つであるが、Windows 2000を盛り上げていただけるような製品に関して協力したい。コンソーシアムのセミナーでも弊社の方からWindowsの担当者が話をする機会が多いが、ついてはパートナー各社の皆さんからこのような場で、Windowsの環境を盛り上げていただけるような製品とか技術についてお話いただければ幸いと思う。今後ともよろしくお願いしたい。」

 続いて『DriverStudio』の販売代理店であるエクセルソフト株式会社 取締役営業部長の川崎太様より同製品についてのご紹介がありました。


 「実際に説明する前に、皆さんが従来ドライバ作成についてどういう作業をし、およびどういう問題点があるか、簡単に触れた上で『DriverStudio』のセミナーに入りたい。皆さんが実際ドライバ作成ツールとしては、マイクロソフトのSDK/DDK、コンパイラを使ったりして問題が発生しない場合はデバッカーを使うという作業で開発をしていくわけであるが、そのドライバを開発する時にはハードウエアの部分も兼ね合うので通常のアプリケーションに比べて開発の工数もそうであるが非常に困難な作業が発生する。今回の『DriverStudio』はSoftICEを含めたデバイスドライバ統合開発環境の上位版として提供しており、この下位版としては『SoftICE Driver Suite』がある。今回この商品を使うことによって更に何が向上し、どういう問題が解決するか、それを実際にセミナーを聞いて是非感じ取っていただければ幸いである。1つは、予めスケルトンとして作っていくツールとか、ドライバを作ったがそのパフィーマンスがいいものかどうか、もしくはその中で本来見えないバグ、もしくはもう少し改善するプログラムインターフェイスがあるのではないか、そういったものを今日説明する『DriverStudio』は、それぞれに特化したソフトが集大成になったソフトであるので、これがかなり現状の開発環境を更に深めて、更にパフォーマンス、更にクオリティのいいものを作っていくということを目標にしている。『DriverStudio』のオリジナルメーカーは米国のCOMPUWARE社である。COMPUWARE社は、米国のデバッカー市場では急ピッチで伸びている企業であり、今後Windows 2000を含めていろいろな形でドライバ開発をする上での中心になる1つの会社である。これから『DriverStudio』の概要と今現在のドライバ作成の概要について、技術サポートをしているサイエンスパークの三浦氏から説明していただく。」

 本セミナーの講師は、1部・2部とも『DriverStudio』の技術サポートを担当されているサイエンスパーク株式会社の三浦秀朗様です。まず自己紹介が行われ、「Windowsのデバイスドライバ関係の仕事を主にやっているが、一番最初のドライバ開発は、『DriverWorks』(今現在『DriverStudio』に組み込まれている)から入った。『DriverWorks』は一種のクラスライブラリであるが、その中のソースコードを見ながらNTのDDKを理解したというちょっと変り種の感じでドライバの開発に入っていった。従って『DriverWorks』が含まれている『DriverStudio』の製品には愛着ひとしおがあり、今回この場で紹介できることを大変嬉しく思う。」とデバイスドライバ開発が大好き人間であるとのことで、大変明快な技術面での説明が行われました。
 

 第1部では、『今後のWindowsドライバ開発におけるDriverStudioの必要性』ということで、(1)「デバイスドライバが何故必要なのか」という初歩的な部分から入り、(2)「Windows 2000で標準となるWDMドライバの開発」、(3)「DriverStudioによるドライバの開発からリリースに至るまでの紹介」の説明が行われました。
(1) デバイスドライバが何故必要なのか
 WindowsというGUIのOSでは、ハードウエアごとにデバイスドライバを用意することでハードウエアのバージョンアップもしくは新しいハードウエアに対応するために開発元から提供されるデバイスドライバを入れ替えることでアプリケーションを変更することなくさまざまなハードウエアに対応可能となる。今WindowsのOSの流れである16ビット系のWindows9Xではターゲットとなるプラットフォームはインテル系のCPUに特化したものである。今後さまざまなCPUが出てくる可能性もあるので、その場合にはこのWindowsの流れでは基本的には対応できない。この問題を吸収するべくもう1つのWindowsの流れとして、元々マイクロソフトがやっていたOS/2の流れをくむWindows NTがある。今Windows NT4.0まで出ているが、このWindows NTではCPUの違いを吸収するような構造を取っており、CPUの違いにおいてこのWindows NTというOSを共通に使えるような形になっている。しかし、その分16ビット系から派生するWindowsと比べてある程度速度を犠牲にしている。今現在この2つのWindowsの流れがあるが、16ビットで用いられるWindowsのデバイスドライバVXDとWindows NTで用いられているデバイスドライバCSファイルの間には一切互換性がない。そこでWindows 98とWindows 2000の2つのOSでWDM(Win32 Driver Model)という形式のドライバを採用することができるようになっている。このWDMはWindows NTのドライバを基本として、16ビット系で実装されていたPlug&Playやパワーマネージメントの機能を付加することによって両者の良い点を合わせたようなドライバの形式となっている。

●デバイスドライバの分離
 WDMドライバの基本構造であるWindows NTドライバの構造の説明をする。まずアプリケーションからハードウエアの制御部分をデバイスドライバとして分離してリソースの管理をOSに任すことにする。そうすることでハードウエアの変更の時には、このデバイスドライバの変更だけでアプリケーションは一切いじる必要はなくなる。アプリケーションがハードウエアに何らかのアクセスをしたい場合には、アプリケーションは基本的にOSに対して要求を出す。アプリケーションの仕事はここまでとなる。その要求を受けたOSはそれをデバイスドライバに伝え、デバイスドライバがハードウエアにアクセスを行う。デバイスドライバはOSから指示を受け取るまで基本的にハードウエアにアクセスを行わない。そしてハードウエアで行われた処理をデバイスドライバが割り込みによってアプリケーションにイベントのような形で返すことをする。これがWindows NTのドライバの基本的な考え方となる。このようにデバイスドライバというように役割を分担することで、各アプリケーションやデバイスドライバは本来の仕事だけに専念することができるようになる。

●階層化ドライバ
 デバイスドライバの考え方を更に推し進めていくと、Windows NTでサポートされているものに階層化ドライバがある。つまるところ、デバイスドライバ間で役割を分担することになる。基本的に上位の方から送られて来たデータをデバイスドライバで扱い易いように加工する部分などのように実際のハードウエアに依存しない部分を“ポート・ドライバ”という。ハードウエアのレジスタを叩くといったようなハードウエアに密接して関係する部分を、“ミニポート・ドライバ”として分離させる。そうすると、ハードウエアのバージョンアップ等によりアクセスするハードウエア自体が変わってしまった場合(例えば、SCSIのプロトコルを扱う場合など)、ポート・ドライバを変更することなくミニポート・ドライバのみを変更すればよいことになる。これがWindows NTドライバの基本構造となる。

(2)Windows 2000で標準となるWDM(Win32 Driver Model)ドライバの開発
●今までのドライバモデルにはいくつかの制限事項があった。
 @ 2つのドライバモデル(Windows用のVxD、Windows NT用のNT SYS)が存在するため、1つのハードウエアに対応するデバイスドライバを書く際にもVXDとWindows NT用と2つ用意する必要があり開発者にも非常に負担が大きかった。Aドライバのカテゴリ分けがされていなかった(Windows NT用のドライバモデル)。B非能率なストリーミング、従来はなかったが最近になって動画・音声の再生に対するハードウエアに対する要求がさまざま出てきて、連続的なデータを扱うのにこれまでのドライバモデルでは構造的に非能率な処理しか行えなかった。連続データの処理では、ユーザーモード(通常のアプリケーションが動く)とカーネルモード(デバイスドライバが動く)との移行が多いために処理時間がかかり、基本的にその処理は苦手だとされていた。Cドライバのインターフェイス構造が複雑。 Dハードウエアアクセラレーション利用が困難(Bと同じ制限事項)。E遅延問題(Bと同じ制限事項)。
●WDMによって制限事項について次のような改善を行った。
 @Windowsで2つ存在していたドライバモデルをWDMという1つのプラットフォームに統合した。A効率的なストリーミング技術で低遅延アプリケーションが可能となった(OSが提供するプロキシーのようなものを介して、ストリーミングのデータ処理が効率的になった)。BバスドライバのHALからの分離。CデバイスIDによるドライバの階層化。DPlug&Playとパワーマネージメントのサポート。
 これら5つの改善点についての詳細が説明されました。

(3)DriverStudioによるドライバの開発からリリースに至るまでの紹介
●デバイスドライバ開発環境
 従来、VxDの開発のためには95DDKとSDKが必要であり、NTのドライバ開発にはNTDDKとSDKが必要であった。16ビットの流れをくむVxDドライバの開発には、DriverStudioに吸収される前はVtoolsDと呼ばれる単独のツールがありこれによってVxDの開発を簡単にしていた。また、NTドライバの作成にはDriverWorksと呼ばれるツールがあった。本来のデバイスドライバ開発のためには、DDKが非常に難解であり、これらのツールが非常に役に立っていた。これらはバラバラのツールであったが、今回DriverStudioという統合製品になり、WDMのサポートも含めたそれらのツールを統合化することになった。そして、従来の開発ツールに加えてデバッグ、評価ツールも加わった統合開発環境、それがDriverStudioとなった。これはこれからWindowsデバイスドライバで標準とされるWDMドライバの開発にも対応しており、最適な開発環境を提供するものとなる。
 DriverStudioには先ほどのVtoolsD 、DriverWorksの他にさまざまな開発支援ツールとして、開発・デバッグ・デバッグ評価・解析・テスト・情報収集といった形に分類され、状況により使い分けることができる。以降、各ツールの概要の説明がありました。

●DriverStudio製品構成
 『DriverStudio』には、@DriverAgent(ハードウエアアクセスWin32アプリケーション開発)、AVtoolsD(仮想デバイスドライバ開発)、BDriverWorks(NT/WDMデバイスドライバ開発)、CSoftICE(カーネルレベル対応デバッカ)、DDriverWorkbench(BoundsChecker・FieldAgentのGUIインターフェイス)、EBoundsChecker Driver Edition(ドライバインターフェイス間のコールを記録・解析)、FFieldAgent(遠隔マシン上でのBoundsChecker機能)、GTrueCoverage Driver Edition(カバレッジ情報収集とテスト工程でのソースコード管理)、H TrueTime Driver Edition(カーネルモードのパフォーマンス・データの収集)、と9つのツールがある。GとHについては、現在開発中であり後からのサポートとなる。また、『SoftICE Driver Suite』として、@〜Cまでのツールをパッケージ化された製品が提供される。
 以降、主要なツールによる開発手順の詳しい説明が行われました。

 第2部では、「DriverStudio」製品デモとして、三浦講師から「DriverWorksを用いたUSB/WDMドライバ開発例のデモストレーション」がありました。
 またその後でエクセルソフト川崎様の司会による質疑応答があり、かなり活発に行われました。

 なお、『DriverStudio』、『SoftICE Driver Suite』についての情報は、エクセルソフト株式会社のURL http://www.xlsoft.com、また、E-mail xlsoftkk@xlsoft.comをご利用ください。

 ここで出席の皆さんからのアンケートによるご意見を紹介します。
 第1部では、「ドライバ開発環境でのより便利なソフトウエアの必要性を感じた」、「ドライバに関して理解が深められた。特にWDMに対応して開発環境を考えていかなければならないと感じた」、「必要性というよりDriverStudioの紹介であったが、SoftICE等のデバッグツールなども含まれており有用と思うが、多機能であるため全ての機能を使用できるか疑問を感じた」、「DDKが提供する環境に対し、よりリッチな環境を提供してくれる点は理解できる。しかし、DriverStudioによって隠される低レベル部に関して問題が発生することがないのか説明が欲しい」、「DriverStudioが大変有用であることを理解したが、必要性があるとは思えなかった」、「もう少しWDMアーキテクチャに関して込み入った内容の話が聞きたかった」、「製品としての内容をもっと詳細に説明して欲しい」です。

 第2部では、「実行時のデバッグ環境(SoftICE等)が非常にすばらしい」、「興味深く拝見できた。ドライバのデバッグの仕方としても大変参考になった」、「非常に簡単にドライバ作成が可能であることが分かった。またカーネルモードを1台でデバッグできるSoftICEには非常に興味を持った」、「すばらしい! でも、ちょっと高い」、「簡単なデモでしたがドライバの作成、デバッグ方法の概要が理解できた」、「DriverStudioの製品紹介としては単純な内容で分かりやすかった」、「デモ自体はよかったが、分らない部分も残った」、「もう少し突っ込んだ内容が欲しかった」、「イメージが掴めた」です。

 セミナー全体では、「来てよかった」、「ドライバ開発に大変参考になった」、「全体的によりよい開発環境の話としてはかなりよかった」、「製品紹介としては非常によい。しかし、中心のターゲットにおくWindows 2000がまだ問題含みの状態の中でどのように対応していくのかの説明が欲しい」、「アップデート金額が不明なのは不満」です。
 開催希望セミナーとしては、「Windowsに加わっていく新しい技術の速やかな紹介」、「開発者が望むものを提供して欲しい。ドライバの内部動作に関するセミナー(Architectureセミナー)を希望」、「プログラミングレベルのテクニックやノウハウに関するもの。一般的・概要的な情報のセミナーが多いがこのようなものは雑誌等でも取得できる。テーマ的には、COM、COM+、Windows 2000、Visual C++関連を希望」、「Windows CEソフトウエアの具体的な開発技法」、「Windows NT/2000を利用したイントラネット・インターネット構築等」、「NDIS、プロトコル系の開発セミナー」です。

 Windowsコンソーシアムに対するご要望として、「特定の製品群に関する開発者を対象とした情報交換会等の開催を希望」がありました。
 多くのご意見をいただき、ありがとうございました。

<事務局長より>
 このようなセミナー開催のご希望がありましたら、セミナー開催希望アンケート(連絡担当者様にメールにてご案内、またWindows View9月号に掲載)にてご連絡くださいますようお願いいたします。
 また、会員会社様が独自に開催されますセミナー・展示会等につきましても弊会理事会のご承認を得た上で、後援・協賛の名義を無料でお貸し致しますので、ご連絡ください。
   連絡先E-mail  kztanaka@fsi.co.jp


Contents         Windows Consortium ホームページ