JP2001222412A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP2001222412A
JP2001222412A JP2000029315A JP2000029315A JP2001222412A JP 2001222412 A JP2001222412 A JP 2001222412A JP 2000029315 A JP2000029315 A JP 2000029315A JP 2000029315 A JP2000029315 A JP 2000029315A JP 2001222412 A JP2001222412 A JP 2001222412A
Authority
JP
Japan
Prior art keywords
driver
kernel mode
dll
file
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000029315A
Other languages
English (en)
Inventor
Yoichi Onoe
洋一 尾上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2000029315A priority Critical patent/JP2001222412A/ja
Publication of JP2001222412A publication Critical patent/JP2001222412A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 インストールの手順が簡単なデータ処理装置
を提供する。 【解決手段】 Windows NTにおいては、ハー
ドウエアにアクセスするためには、カーネルモードデバ
イスドライバー5が必要となる。カーネルモード2にお
いてハードウエア6にアクセスするカーネルモードデバ
イスドライバー5を、ユーザーモード1においてアプリ
ケーション3とのインターフェースを行うDLL4の内
部に埋め込むように構成した。これにより、あたかもア
プリケーション3からDLL4にアクセスするだけでカ
ーネルモードドライバー5を呼び出すことができ、呼び
出されたカーネルモードドライバー5によりハードウエ
ア6の制御が直接行えるようにすることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば、オペレー
ティングシステム(OS)としてWindowsNTを
使用して、新たなアプリケーションソフトウエアを開発
する際の事前設定を行うデータ処理装置に関するもので
ある。
【0002】
【従来の技術】Windows NT用に新たにハード
ウエア等を開発する際に、アプリケーションプログラム
の開発が必要とされるが、このアプリケーションプログ
ラム以外にも、そのハードウエアをコントロールするた
めの、カーネルモードデバイスドライバーが必要とされ
ていた。多くの場合、このカーネルモードデバイスドラ
イバーをプログラミングする担当者と、アプリケーショ
ンをプログラミングする担当者とは別であった。従っ
て、新たなハードウエア開発途中においては、しばし
ば、アプリケーションプログラムのプログラミングの担
当者のテスト用パーソナルコンピュータに、その開発の
時々でバージョンアップされたカーネルモードデバイス
ドライバーを再インストールする場面が出てくることが
あった。
【0003】図6に、一般的なWindows NTの
デバイスドライバーとアプリケーションの関係を示す。
Windows NTにおいては、ハードウエアにアク
セスするためには、図6に示すカーネルモード(デバイ
ス)ドライバー65が必要となる。このカーネルモード
(デバイス)ドライバー65は、Windows NT
用に新たにハードウエアを開発する際には、ハードウエ
アメーカーのソフトウエアのエンジニアがプログラミン
グを行うことが多い。図6は一番単純な関係の例を示し
ているが、通常は少なくともカーネルモード62におい
て、ハードウエア66にアクセスするカーネルモード
(デバイス)ドライバー65が設けられ、ユーザーモー
ド61において、アプリケーション63とのインターフ
ェースを行いカーネルモード(デバイス)ドライバー6
5にアクセスするDLL(ダイナミックリンクライブラ
リ)64と、DLL64およびカーネルモード(デバイ
ス)ドライバー65をパーソナルコンピュータにインス
トールするためのインストールプログラム67とが1セ
ットとなる。
【0004】ユーザーモード61のアプリケーション6
3を作成するプログラムの担当者は、このインストール
プログラム67を用いてパーソナルコンピュータにイン
ストールした後に、アプリケーションプログラム63の
作成やテストを行うことになる。ある程度のソフトウエ
アの規模になると、カーネルモード(デバイス)ドライ
バー65のプログラミングの担当者と、アプリケーショ
ン63をプログラミングする担当者とは別に割り当てら
れるため、アプリケーション開発には上述したインスト
ール作業が付いて回ることになる。
【0005】図7に、一般的なWindows NTの
カーネルモードドライバーのインストール手順を示す。
一般的にはカーネルモードデバイスドライバーをパーソ
ナルコンピュータ72にインストールするには、図7に
示すように、インストーラーフロッピーディスク71な
どを用意していた。このインストーラーフロッピーディ
スク71には、(1)インストーラープログラムと、
(2)インストールするカーネルモードドライバーと、
(3)アプリケーションプログラムとのインターフェー
ス用DLLとが必要なファイルとして記録されている。
【0006】インストール73の手順としては、第1
に、(11)古いカーネルモードドライバーが残ってい
るときは、その動作を停止して削除する。第2に、(1
2)登録内容の変更が必要なときはレジストリの変更を
する。第3に、(13)レジストリにキーと名称を登録
する(通常は¥¥HKEY_LOCAL_MACHIN
E¥SYSTEM¥CurrentControlSe
t¥Servicesに登録する)。第4に、(14)
新しいカーネルモードドライバーを指定されたディレク
トリにコピーする(通常はWINNT¥SYSTEM3
2¥DRIVERSにコピーする)。第5に、(15)
登録を有効にするため、パーソナルコンピュータ(P
C)を再起動する。
【0007】このようにして、74に示すように、古い
カーネルモードドライバーと古いレジストリの登録を削
除することにより、75に示すように、この後、ようや
くパーソナルコンピュータ72においてアプリケーショ
ンプログラムのテストを開始することができる。
【0008】また、特開平7−262026号公報に
は、カーネルの情報がないと解析不可能な障害に対応す
るため、アプリケーション(AP)フリーズ(情報保
存)DLLの中にパケットとして書かれた先頭アドレス
等をAPフリーズドライバーの中にパケットとして格納
することにより、特権モード(カーネル)のAPフリー
ズDLLを呼び出して論理アドレスを取得するデータ処
理装置が開示されている。
【0009】
【発明が解決しようとする課題】しかし、上述した従来
のインストーラーフロッピーディスク71を用いて行う
Windows NTのカーネルモードドライバーのイ
ンストール手順では、インストーラーフロッピーディス
ク71をユーザーに配布する最終形態として、上述した
手法によりインストールすることが望まれるが、手順が
煩雑で、しかも時間がかかるという不都合があった。
【0010】例えば、インストールにおいて取り扱うフ
ァイルは、インストーラーと、ドライバー本体と、アプ
リケーションとのインターフェース用DLLとの最低で
も3種類を必要とする。なお、DLLは場合によっては
不要だが、一般的にはユーザーモードアプリケーション
からカーネルモードデバイスドライバーを直接呼ぶと、
呼び出し関数名などで抽象度が制約されてしまうため、
DLLのようなインターフェースを介することが多い。
この結果、ファイルそれぞれのバージョン管理などの手
間や、それに起因する手違いなどを生じる恐れがある。
【0011】また、インストール手順も、一度再起動が
必要であったりするため、時間がかかってしまうことが
多い。特に、Windows NTでは、パーソナルコ
ンピュータの再起動に時間がかかるため、この回数が多
くなると、時間的なロスが増大する。
【0012】さらに、このようなインストール作業が必
要であり、そのために手間がかかることから、常に最新
のデバイスドライバーのインストールを避けてしまい、
最新のデバイスドライバーでの作業が実行されなくなる
恐れもある。
【0013】また、特開平7−262026号公報記載
のデータ処理装置は、ミドルソフトとしてアプリケーシ
ョンとOSとの間にAPフリーズDLLを余計に有する
構成であり、しかも、APフリーズDLLはユーザーモ
ードでのみ動作し、カーネルのコードの直接呼び出しや
参照ができない。つまり、この場合OSはユーザモード
で動作しているアプリケーションからカーネルモードの
領域をアクセスすることはできず、カーネルモードで動
作するDLLはカーネル内部のデータ(カーネル情報)
にアクセスすることが可能であるため、アプリケーショ
ンおよびミドルソフトとカーネルモードで動作するDL
Lとを橋渡しするブリッジ手段としてパケットを余計に
有する構成であるため、構成および処理が複雑であると
いう不都合があった。
【0014】そこで、本発明は、かかる点に鑑みてなさ
れたものであり、インストールの手順が簡単なデータ処
理装置を提供することを課題とする。
【0015】
【課題を解決するための手段】本発明のデータ処理装置
は、ハードウエアにアクセスするカーネルモードドライ
バーを有するオペレーティングシステムを用いたデータ
処理装置において、ユーザーモードアプリケーションと
のインターフェースを司り、上記カーネルモードドライ
バーを内部に有するダイナミックリンクライブラリを設
け、上記ユーザーモードアプリケーションから上記ダイ
ナミックリンクライブラリにアクセスするだけで上記カ
ーネルモードドライバーを動作させるものである。
【0016】従って本発明によれば、以下の作用をす
る。オペレーティングシステムにおいては、ハードウエ
アにアクセスするためには、カーネルモードドライバー
が必要となる。カーネルモードにおいてハードウエアに
アクセスするカーネルモードドライバーを、ユーザーモ
ードにおいてアプリケーションとのインターフェースを
行うダイナミックリンクライブラリの内部に埋め込んで
いる。これにより、あたかもアプリケーションからダイ
ナミックリンクライブラリにアクセスするだけでカーネ
ルモードドライバーを呼び出すことができ、呼び出され
たカーネルモードドライバーによりハードウエアの制御
が直接行える。
【0017】
【発明の実施の形態】本実施の形態のデータ処理装置
は、Windows NTのカーネルモードドライバー
をDLLとして実装し、簡単にユーザーモードのアプリ
ケーションプログラムからDLL内のカーネルモードド
ライバーを呼び出すことができるものである。
【0018】図1に、本実施の形態のWindows
NTのデバイスドライバーとアプリケーションの関係を
示す。Windows NTにおいては、ハードウエア
にアクセスするためには、図1に示すカーネルモードデ
バイスドライバー5が必要となる。本実施の形態では、
カーネルモード2においてハードウエア6にアクセスす
るカーネルモードデバイスドライバー5を、ユーザーモ
ード1においてアプリケーション3とのインターフェー
スを行うDLL4の内部に埋め込むように構成した。
【0019】これにより、あたかもアプリケーション3
からDLL4にアクセスするだけでカーネルモードドラ
イバー5を呼び出すことができ、呼び出されたカーネル
モードドライバー5によりハードウエア6の制御が直接
行えるようにすることができる。
【0020】図2に本実施の形態のWindows N
Tのカーネルモードドライバーのインストール手順を示
す。本実施の形態では、カーネルモードデバイスドライ
バーをパーソナルコンピュータ12にインストールする
には、図1に示すように、DLLが格納されたフロッピ
ーディスク11を用意する。このフロッピーディスク1
1には、カーネルモードドライバーが統合されたDLL
が単一のファイルとして記録されている。
【0021】インストールの手順としては、13に示す
ように、カーネルモードドライバーが統合されたDLL
を古いDLLに上書きコピーするだけである。この場
合、14で示すように、格納領域に制限はなく任意のデ
ィレクトリーに格納可能である。
【0022】このようにして、古いDLLに新たなDL
Lを上書きコピーすることにより、15に示すように、
コピー直後、パーソナルコンピュータ12においてただ
ちにアプリケーションプログラムのテスト(実行)が可
能となる。
【0023】なお、本実施の形態では、インストールプ
ログラムは不要であり、新たなDLLは任意のディレク
トリーに配置可能であり、さらに、コピーするファイル
は新たなDLLの1つのみであり、さらに、この際にレ
ジストリーへの登録は不要であり、また、パーソナルコ
ンピュータ12の再起動は不要であるため、簡単な処理
でインストールを行うことができる。
【0024】図3に、本実施の形態のDLLの詳細な構
造を示す。前提として、Windows NTの実行フ
ァイル(.EXE)やライブラリファイル(DLLな
ど)は、内部にリソースとしてさまざまなイメージを包
含することができるように構成されている。例えば、多
くの場合、リソースとしては、アイコン、マウスカーソ
ル、ビットマップ、ダイヤログボックス、メニュー、テ
キストテーブルなどが登録されている。
【0025】このようなオブジェクトをリソースとして
DLL21内部に埋め込んでおくことにより、プログラ
ム本体には何等手を着けることなく、リソースだけを手
直しするだけで、簡単に内部の変更が可能になる。
【0026】通常は、「.RC」ファイルとして、リソ
ースのソースコードを用意し、リソースコンパイラに
て、「.RES」ファイルに変換し、プログラム全体を
コンパイラとリンカを用いてWindows NTの実
行ファイルとする。
【0027】図3に示すこのリソースファイル(「.R
C」ファイル)22には、上述したオブジェクト以外
に、任意のファイルを格納することができる。リソース
ファイル22に、バイナリセクションとして、「BIN
RES」のキーワード以下にカーネルモードドライバー
(「.SYS」)23を記述すれば、DLL21内部に
そのイメージをリソースとして取り込むことが可能とな
る。
【0028】これにより、24で示すように、DLL2
1内部にカーネルモードドライバー23のファイルをバ
イナリイメージとして埋め込むことができる。
【0029】以下に、このようにDLLを構成すること
による各種機能を説明する。まず、25に示すように、
リソースからドライバーのイメージを取り出し、一時フ
ァイルに展開する処理がある。これにより、26に示す
ように、DLL21内部に埋め込んだドライバーファイ
ルを取り出すことができる。
【0030】このようにして、DLL21内部では、そ
のDLL21が最初にユーザーモードアプリケーション
から呼ばれたときに、リソースからカーネルモードデバ
イスドライバーのイメージを取り出し、一時ファイルと
してWindows NTが扱える形式のファイルとし
てパーソナルコンピュータのハードディスク上に展開す
るコードをプログラム上で走らせる。
【0031】次に、27に示すように、Windows
NTのサービスコントロールマネージャーを用いたド
ライバーの自動登録とドライバーをスタートさせる処理
がある。これにより、28に示すように、サービスコン
トロールマネージャーを使ってドライバーを起動させる
ことができる。
【0032】このようにして、リソースからカーネルモ
ードデバイスドライバーのイメージをWindows
NTの実行ファイルとして復元して、オペレーティング
システム(OS)としてのWindows NTのサー
ビスコントロールマネージャーの機能を使うことことが
できる。
【0033】次に、29に示すように、デバイスドライ
バーのオープン、I/Oコントロールの呼び出し、RE
AD/WRITEの処理およびデバイスドライバーのク
ローズの処理がある。
【0034】さらに、30に示すように、I/Oコント
ロール、READ/WRITE処理を外部のユーザーモ
ードアプリケーション31のプログラムとインターフェ
ースするためのより抽象的な関数の実装の処理がある。
【0035】このようにして、動的にカーネルモードデ
バイスドライバー23をユーザーモードアプリケーショ
ン31のシステムに登録し、動作をスタートすることが
可能となる。
【0036】なお、このとき作った一時ファイルは、デ
バイスドライバーがスタートすれば、パーソナルコンピ
ュータのメモリー上に展開されるため、不要となるの
で、削除することが可能となる。
【0037】最後に、32で示すように、Window
s NTのサービスコントロールマネージャーを用いた
ドライバーの動作を終了させる処理がある。これによ
り、33に示すように、サービスコントロールマネージ
ャーを使ってドライバーを終了させることができる。
【0038】このように、34に示すように、上述した
全ての機能を1つのDLLファイル21の中に組み込む
ことができる。
【0039】図4に、上述したDLLの各種機能により
DLLが初期化されるときの処理の詳細を示す。図4A
は処理の内容と手順、図4Bは使用する関数(Wind
ows API(Application Progr
amming Interface)など)である。な
お、関数名は、使用するプログラミング言語によって、
多少変わってくることがある。実際のプログラミングに
おいては、各処理が失敗した場合のエラーメッセージの
表示や、エラー処理の部分が必要になるが、ここでは割
愛している。
【0040】まず、図4AにおいてステップS1で埋め
込んだリソースファイル(「.RC」ファイル)のバイ
ナリセクション(「BINRES」)からカーネルモー
ドドライバーのファイル(「.SYS」ファイル)を見
つける。図4Bにおいてこのときの関数F1は「Fin
dResource」である。
【0041】図4AにおいてステップS2でリソースフ
ァイル(「.RC」ファイル)を読み込む。図4Bにお
いてこのときの関数F2は「LoadResourc
e」である。
【0042】図4AにおいてステップS3でファイルと
してのサイズを調べる。図4Bにおいてこのときの関数
F3は「SizeOfResource」である。
【0043】図4AにおいてステップS4でリソースが
移動されないようにロックする。図4Bにおいてこのと
きの関数F4は「LockResource」である。
【0044】図4AにおいてステップS5で一時ファイ
ルを作成する。図4Bにおいてこのときの関数F5は
「lcreat」である。
【0045】図4AにおいてステップS6で一時ファイ
ルに取り出したデバイスドライバーのイメージを書き込
む。図4Bにおいてこのときの関数F6は「hwrit
e」である。
【0046】図4AにおいてステップS7で一時ファイ
ルを閉じる。図4Bにおいてこのときの関数F7は「l
close」である。
【0047】図4AにおいてステップS8でサービスコ
ントロールマネージャーを開く。図4Bにおいてこのと
きの関数F8は「OpenSCManeger」であ
る。
【0048】図4AにおいてステップS9でサービスハ
ンドルを作る。図4Bにおいてこのときの関数F9は
「CreateServiceHandle」である。
【0049】図4AにおいてステップS10でサービス
を開始する。図4Bにおいてこのときの関数F10は
「StartService」である。
【0050】図4AにおいてステップS11でサービス
ハンドルを開放する。図4Bにおいてこのときの関数F
11は「CloseServiceHandle」であ
る。
【0051】図4AにおいてステップS12でサービス
コントロールマネージャーを終了する。図4Bにおいて
このときの関数F12は「CloseSCManege
r」である。
【0052】図4AにおいてステップS13で一時ファ
イルは不要になったので削除する。図4Bにおいてこの
ときの関数F13は「DeleteFile」である。
【0053】図4AにおいてステップS14でドライバ
ーを起動する。図4Bにおいてこのときの関数F14は
「CreateFile」である。
【0054】このようにして、起動に成功した後は、本
実施の形態のDLLは、ユーザーモードアプリケーショ
ンに対して必要な関数を提供する機能も含んでいるの
で、アプリケーション側からの呼び出しに応じて、その
内容を判断して、デバイスドライバーへのアクセスに変
換して処理を行うことになる。
【0055】一般的にデバイスドライバーへのアクセス
は、「ReadFile」、「WriteFile」、
「DeviceIOControl」の3種類で行い、
ほとんどの場合、最後の「DeviceIOContr
ol」へ渡すコントロールコードによって、処理の内容
を判別しなければならない。
【0056】これは、ユーザーモードアプリケーション
から見ると、デバイスドライバーは抽象度が低いため、
プログラミングの記述の際にデバイスドライバーへの見
通しが悪くなることが考えられるためである。
【0057】従って、通常はDLL内部においてより一
般的で抽象度が高い関数を用意して、アプリケーション
側に提供するという処理が行われている。本実施の形態
のDLLでは、デバイスドライバーの起動作業と共に、
この関数の提供という機能も同時に設けている。
【0058】さらに、本実施の形態のDLLの使用を終
了するときは、後述するような手順で自動的に登録され
たデバイスドライバーを削除して、元の状態に戻す処理
までをDLL内部の機能に含んでいる。
【0059】図5に、上述したDLLの使用を終了する
ときの処理の詳細を示す。図5Aは処理の内容と手順、
図5Bは使用する関数(Windows APIなど)
である。
【0060】図5AにおいてステップS21でドライバ
ーをクローズする。図5Bにおいてこのときの関数F2
1は「CloseHndle」である。
【0061】図5AにおいてステップS22でサービス
コントロールマネージャーを呼び出す。図5Bにおいて
このときの関数F22は「OpenSCManege
r」である。
【0062】図5AにおいてステップS23でサービス
をオープンする。図5Bにおいてこのときの関数F23
は「OpenService」である。
【0063】図5AにおいてステップS24でドライバ
ーサービスを停止させる。図5Bにおいてこのときの関
数F24は「ControlService」である。
【0064】図5AにおいてステップS25でドライバ
ーのサービスをレジストリから削除する。図5Bにおい
てこのときの関数F25は「DeleteServic
e」である。
【0065】図5AにおいてステップS26でサービス
を閉じ、サービスハンドルを開放する。図5Bにおいて
このときの関数F26は「CloseServiceH
andle」である。
【0066】図5AにおいてステップS27でサービス
コントロールマネージャーを閉じて終了させる。図5B
においてこのときの関数F27は「CloseSCMa
neger」である。
【0067】このように、カーネルモードデバイスドラ
イバーをインターフェース用DLLの内部に埋め込んで
しまうことにより、上述した各種機能が単一のDLL内
に組み込まれる。これにより、以下のような効果が生ず
る。
【0068】まず、運用するファイルが1つで済むた
め、バージョン管理や組み合わせの整合をとるという煩
雑さがなくなる。
【0069】また、DLL内部でドライバーの登録と抹
消を行うので、「インストール」という作業が不要にな
る。つまり、新しいドライバーが作成できたときは、D
LLファイルを「コピー」するだけでよい。最近ではパ
ーソナルコンピュータはネットワーク環境につながれて
いるが、この場合は、ファイルを記録するフロッピーさ
えも不要となり、ネットワーク経由でDLLファイル1
つだけを目的のコンピュータにコピーさえすればよい。
【0070】また、DLLファイルは、アプリケーショ
ンから呼び出せる場所であれば、任意のディレクトリに
配置することができる。場合によっては、ネットワーク
ドライブの先に配置することも可能となり、そのとき
は、「コピー」の作業さえも不要となる。
【0071】また、「インストール」、「再起動」など
の手間が不要なので、時間を気にすることなく常に最新
のデバイスドライバーを使ってユーザーモードアプリケ
ーションの開発を行うことができる。
【0072】また、DLLを用いるため、ほとんど全て
のWindows用開発言語から簡単にアクセスするこ
とが可能となり、例えばエクセルやワードのマクロ言語
からでもアクセス可能となる。
【0073】なお、上述した本実施の形態のデータ処理
装置に用いられるDLLは、例えば、ユーザーモードア
プリケーションの開発を行う際の開発ツールに適用する
ことができる。
【0074】また、本実施の形態では、Windows
NTを用いてDLLの内部にカーネルモードデバイス
ドライバーを組み込む例を示したが、これに限らず、例
えば、ActiveXのライブラリにも応用することが
できる。
【0075】また、Windows NTに限らず、W
indows 2000においても、ハードウエアのコ
ントロールモードのデバイスドライバーが必要となるた
め、これにも応用することができる。
【0076】
【発明の効果】この発明のデータ処理装置は、ハードウ
エアにアクセスするカーネルモードドライバーを有する
オペレーティングシステムを用いたデータ処理装置にお
いて、ユーザーモードアプリケーションとのインターフ
ェースを司り、カーネルモードドライバーを内部に有す
るダイナミックリンクライブラリを設け、ユーザーモー
ドアプリケーションからダイナミックリンクライブラリ
にアクセスするだけでカーネルモードドライバーを動作
させるので、これにより、あたかもアプリケーションか
らダイナミックリンクライブラリ(DLL)にアクセス
するだけでカーネルモードドライバーを呼び出すことが
でき、呼び出されたカーネルモードドライバーによりハ
ードウエアの制御が直接行えるようにすることができる
という効果を奏する。
【0077】また、この発明のデータ処理装置は、上述
において、ダイナミックリンクライブラリ内部のリソー
スファイルのバイナリセクションにカーネルモードドラ
イバーを指定することにより、カーネルモードドライバ
ー本体をバイナリイメージとしてダイナミックリンクラ
イブラリに埋め込むので、ファイルをリソースとしてダ
イナミックリンクライブラリ(DLL)内部に埋め込ん
でおくことにより、プログラム本体には何等手を着ける
ことなく、リソースだけを手直しするだけで、簡単に内
部の変更を可能とすることができるという効果を奏す
る。
【0078】また、この発明のデータ処理装置は、上述
において、ダイナミックリンクライブラリは、リソース
ファイルからカーネルモードドライバーのバイナリイメ
ージを取り出し、ダイナミックリンクライブラリに埋め
込んだカーネルモードドライバーを一時ファイルに展開
する機能を有するので、これにより、ダイナミックリン
クライブラリ(DLL)内部に埋め込んだドライバーフ
ァイルを取り出すことができ、このようにして、ダイナ
ミックリンクライブラリ(DLL)内部では、そのダイ
ナミックリンクライブラリ(DLL)が最初にユーザー
モードアプリケーションから呼ばれたときに、リソース
からカーネルモードデバイスドライバーのイメージを取
り出し、一時ファイルとしてオペレーティングシステム
が扱える形式のファイルにすることができるという効果
を奏する。
【0079】また、この発明のデータ処理装置は、上述
において、ダイナミックリンクライブラリは、オペレー
ティングシステム(Windows NT)のサービス
コントロールマネージャーを用いてカーネルモードドラ
イバーの起動または終了を行う機能を有するので、これ
により、サービスコントロールマネージャーを使ってド
ライバーを起動させることができ、このようにして、リ
ソースからカーネルモードデバイスドライバーのイメー
ジをWindows NTの実行ファイルとして復元し
て、Windows NTのサービスコントロールマネ
ージャーの機能を使うことができるという効果を奏す
る。
【0080】また、この発明のデータ処理装置は、上述
において、ダイナミックリンクライブラリは、カーネル
モードドライバーのファイルオープンを行い、所定の関
数を用いてユーザーモードアプリケーションとのインタ
ーフェースを行い、カーネルモードドライバーのファイ
ルクローズを行う機能を有するので、このようにして、
動的にカーネルモードドライバーをユーザーモードアプ
リケーションのシステムに登録し、動作をスタートする
ことができるという効果を奏する。
【図面の簡単な説明】
【図1】本実施の形態のデバイスドライバーとアプリケ
ーションの関係を示す図である。
【図2】本実施の形態のカーネルモードドライバーのイ
ンストール手順を示す図である。
【図3】本実施の形態のDLLの詳細な構造を示す図で
ある。
【図4】本実施の形態のDLLが初期化されるときの処
理の詳細を示す図であり、図4Aは処理の内容と手順、
図4Bは使用する関数(Windows APIなど)
である。
【図5】本実施の形態のDLLの使用を終了するときの
処理の詳細を示す図であり、図5Aは処理の内容と手
順、図5Bは使用する関数(Windows APIな
ど)である。
【図6】一般的なWindows NTのデバイスドラ
イバーとアプリケーションの関係を示す図である。
【図7】一般的なWindows NTのカーネルモー
ドドライバーのインストール手順を示す図である。
【符号の説明】
1……ユーザーモード、2……カーネルモード、3……
アプリケーション、4……DLL(ダイナミックリンク
ライブラリ)、5……カーネルモードドライバー、6…
…ハードウエア、11……DLLが格納されたフロッピ
ー、12……パーソナルコンピュータ、13……カーネ
ルモードドライバーが統合されたDLLの古いDLLに
への書きコピー、14……任意のディレクトリーに格納
可能、15……コピー直後のアプリケーションプログラ
ムのテスト(実行)可能、21……DLL、22……R
C(リソースファイル)、23……カーネルモードドラ
イバーファイル、24……DLL内部へのカーネルモー
ドドライバーファイルのバイナリイメージとしての埋め
込み、25……リソースからドライバーのイメージを取
り出し、一時ファイルに展開する処理、26……埋め込
んだドライバーファイルの取り出し、27……Wind
ows NTのサービスコントロールマネージャーを用
いたドライバーの自動登録とスタート処理、28……サ
ービスコントロールマネージャーを使ったドライバーの
起動、29……デバイスドライバーのオープン、I/O
コントロールの呼び出し、READ/WRITEの処理
およびデバイスドライバーのクローズの処理、30……
I/Oコントロール、READ/WRITE処理を外部
アプリケーションプログラムとインターフェースするた
めのより抽象的な関数の実装の処理、31……ユーザー
モードアプリケーション、32……Windows N
Tのサービスコントロールマネージャーの機能を使っ
て、ドライバーの動作を終了させる処理、33……サー
ビスコントロールマネージャーを使ったドライバーの終
了、34……全ての機能の1つのDLLファイルの中へ
の組み込み

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 ハードウエアにアクセスするカーネルモ
    ードドライバーを有するオペレーティングシステムを用
    いたデータ処理装置において、 ユーザーモードアプリケーションとのインターフェース
    を司り、上記カーネルモードドライバーを内部に有する
    ダイナミックリンクライブラリを設け、 上記ユーザーモードアプリケーションから上記ダイナミ
    ックリンクライブラリにアクセスするだけで上記カーネ
    ルモードドライバーを動作させることを特徴とするデー
    タ処理装置。
  2. 【請求項2】 請求項1記載のデータ処理装置におい
    て、 上記ダイナミックリンクライブラリ内部のリソースファ
    イルのバイナリセクションに上記カーネルモードドライ
    バーを指定することにより、上記カーネルモードドライ
    バー本体をバイナリイメージとして上記ダイナミックリ
    ンクライブラリに埋め込むことを特徴とするデータ処理
    装置。
  3. 【請求項3】 請求項1記載のデータ処理装置におい
    て、 上記ダイナミックリンクライブラリは、上記リソースフ
    ァイルから上記カーネルモードドライバーの上記バイナ
    リイメージを取り出し、上記ダイナミックリンクライブ
    ラリに埋め込んだ上記カーネルモードドライバーを一時
    ファイルに展開する機能を有することを特徴とするデー
    タ処理装置。
  4. 【請求項4】 請求項1記載のデータ処理装置におい
    て、 上記ダイナミックリンクライブラリは、Windows
    NTのサービスコントロールマネージャーを用いて上
    記カーネルモードドライバーの起動または終了を行う機
    能を有することを特徴とするデータ処理装置。
  5. 【請求項5】 請求項1記載のデータ処理装置におい
    て、 上記ダイナミックリンクライブラリは、上記カーネルモ
    ードドライバーのファイルオープンを行い、所定の関数
    を用いて上記ユーザーモードアプリケーションとのイン
    ターフェースを行い、上記カーネルモードドライバーの
    ファイルクローズを行う機能を有することを特徴とする
    データ処理装置。
JP2000029315A 2000-02-07 2000-02-07 データ処理装置 Pending JP2001222412A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000029315A JP2001222412A (ja) 2000-02-07 2000-02-07 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000029315A JP2001222412A (ja) 2000-02-07 2000-02-07 データ処理装置

Publications (1)

Publication Number Publication Date
JP2001222412A true JP2001222412A (ja) 2001-08-17

Family

ID=18554593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000029315A Pending JP2001222412A (ja) 2000-02-07 2000-02-07 データ処理装置

Country Status (1)

Country Link
JP (1) JP2001222412A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005317019A (ja) * 2004-04-29 2005-11-10 Microsoft Corp 汎用usbドライバ
US7561927B2 (en) 2004-07-02 2009-07-14 Okuma Corporation Numerical controller which can call program described in script language
KR100916301B1 (ko) * 2007-10-01 2009-09-10 한국전자통신연구원 커널 api 대화식 실행 장치 및 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005317019A (ja) * 2004-04-29 2005-11-10 Microsoft Corp 汎用usbドライバ
KR101130474B1 (ko) 2004-04-29 2012-03-27 마이크로소프트 코포레이션 총칭 usb 드라이버
JP2012099145A (ja) * 2004-04-29 2012-05-24 Microsoft Corp 汎用usbドライバ
US7561927B2 (en) 2004-07-02 2009-07-14 Okuma Corporation Numerical controller which can call program described in script language
KR100916301B1 (ko) * 2007-10-01 2009-09-10 한국전자통신연구원 커널 api 대화식 실행 장치 및 방법

Similar Documents

Publication Publication Date Title
EP1634170B1 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
US6804774B1 (en) Software image transition aid comprising building a disk image based on identified hardware
US6345319B2 (en) Method for installing plug-n-play device by copying INF files to a corresponding directory and deleting device ID and all related device class of an original device
JP4932781B2 (ja) 目標の媒体上に縮小オペレーティングシステムイメージを作成する方法、システム及びプログラム
CN101069157B (zh) 用于访问资源的方法和系统
US7373496B2 (en) Operating system rebooting apparatus for continuing to execute a non-stop module even during rebooting
US6915420B2 (en) Method for creating and protecting a back-up operating system within existing storage that is not hidden during operation
KR100330532B1 (ko) 동적부트파일시스템선택방법및장치
US6948165B1 (en) Method for installing an application program, to be executed during each bootload of a computer system for presenting a user with content options prior to conventional system startup presentation, without requiring a user's participation to install the program
JP4663878B2 (ja) 記憶媒体内のファイルを管理する方法および装置
US7237102B2 (en) Methods and apparatus for configuring hardware resources in a pre-boot environment without requiring a system reset
US6032201A (en) Plug and play system using proxy for retrieving correct information about current device from system registry when current device is not the newly installed device
US7017039B2 (en) Method of booting a computer operating system to run from a normally unsupported system device
US20010039612A1 (en) Apparatus and method for fast booting
US7424719B2 (en) Application with multiple embedded drivers
US7827376B2 (en) System and method for protecting hidden protected area of HDD during operation
ZA200306411B (en) System and method for restoring computer systems damaged by a malicious computer program.
JPH08249191A (ja) ブート方法及び装置
JP2000207176A (ja) 手近にない読取り/書込みハ―ドドライブ区分を有する図形のユ―ザインタ―フェイス(gui)を起動しかつ実行するコンピュ―タシステムおよび操作方法
JPH10283189A (ja) 内蔵実行可能アプリケーション及びコンピュータ読み取り可能な記憶媒体並びに内蔵実行可能アプリケーションの作成方法及びその作成システム
US7080247B2 (en) System and method for automated display driver management
WO2000063760A2 (en) A device driver for accessing computer files
KR20100016174A (ko) 데이터-스머글링을 위한 저장 장치와 방법
US6189147B1 (en) Apparatus and method for an installation recovery system
US6795965B1 (en) Multi-source program module updater