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