(57)【特許請求の範囲】
【請求項１】
複数のデバイスが接続され、ＯＳによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムにおいて、
前記デバイスには前記デバイスを制御するためのデバイスドライバが存在し、
前記デバイスは、第１デバイスと第２デバイスからなり、
前記第１デバイスを制御する第１デバイスドライバが存在し、
前記第２デバイスを制御する第２デバイスドライバが存在し、
前記ＯＳには、前記ＯＳを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードがあり、
前記電子計算機用インターフェースドライバプログラムは、前記電子計算機で動作するアプリケーションプログラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の送受信を行うための共通のインターフェース手段として前記電子計算機を機能させるプログラムであり、
更に、前記電子計算機用インターフェースドライバプログラムは、前記カーネルモードで動作し、かつ、
前記アプリケーションプログラムからの命令を受信し命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段、
前記第１デバイスドライバから受信データを取り込むための第１インターフェース手段、
前記第２デバイスドライバへ送信データの送信を行うための第２インターフェース手段、及び、
前記受信データを処理して前記送信データを作成し、前記送信データを前記第２インターフェース手段に渡すためのデータ処理手段
として前記電子計算機を機能させるプログラムである
ことを特徴とする電子計算機のインターフェースドライバプログラム。
【請求項２】
複数のデバイスが接続され、ＯＳによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムにおいて、
前記ＯＳは、前記ＯＳを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードを備え、
前記ＯＳは、前記複数のデバイスをそれぞれ制御するための複数のデバイスドライバを備え、
前記電子計算機用インターフェースドライバプログラムは、
前記複数のデバイスドライバからなるデバイスドライバ層と、前記ＯＳがカーネルモードで提供する基本プログラムとの間に位置し、前記カーネルモードで動作し、
かつ、（I）前記デバイスドライバの共通の窓口となるとともに、前記基本プログラムを通して行われる、前記デバイスドライバと前記アプリケーションプログラムとのやり取りをまとめて行ない、（II）前記アプリケーションプログラムから要求されたときに、前記複数のデバイスの間、又は、前記アプリケーションプログラムと前記デバイスの間のデータの送受信を行ない、（III）前記アプリケーションプログラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記ＯＳが標準で備えているインターフェースを通して、前記アプリケーションプログラムから出された前記命令を受信して、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の送受信、又は、前記デバイス間のデータのやりとりを経由する共通インターフェース手段として前記電子計算機を機能させるプログラムであり、
前記電子計算機用インターフェースドライバプログラムは、
前記アプリケーションプログラムからの命令を受信し、命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段、
前記デバイスの内の第１デバイスを制御するための第１デバイスドライバから受信データを取り込むための第１インターフェース手段、
前記デバイスの内の第２デバイスを制御するための第２デバイスドライバへ送信データの送信を行うための第２インターフェース手段、及び、
前記受信データを処理して前記送信データを作成し、前記送信データを前記第２インターフェース手段に渡すためのデータ処理手段
として前記電子計算機を機能させるプログラムである
ことを特徴とする電子計算機のインターフェースドライバプログラム。
【請求項３】
請求項１又は２に記載の電子計算機のインターフェースドライバプログラムであって、
前記第１デバイスは、画像データを取込むための画像装置（１５）であり、
前記第２デバイスは、ネットワーク（１３）に接続し前記画像データを前記ネットワーク（１３）に送信するためのネットワークカード（１６）であり、
前記第１インターフェース手段（１８）は、前記画像装置（１５）からの前記画像データを取り込み、
前記データ処理手段（１９）は、前記第１インターフェース手段（１８）から送信された前記画像データを処理し、前記ネットワーク（１３）に送信するための送信画像データを作成し、
前記第２インターフェース手段（２０）は、前記データ処理手段（１９）からの前記送信画像データを前記ネットワーク（１３）に送信する
ことを特徴とする電子計算機のインターフェースドライバプログラム。
【請求項４】
請求項１又は２に記載の電子計算機のインターフェースドライバプログラムであって、
前記第１デバイスは、バーコードデータを読み取るためのバーコード読取装置（２８）であり、
前記第２デバイスは、ネットワーク（３４）に接続し前記バーコードデータを前記ネットワーク（３４）に送信するためのネットワークカード（１６）であり、
前記第１インターフェース手段（１８）は、前記バーコード読取装置（２８）からの前記バーコードデータを取り込み、
前記データ処理手段（１９）は、前記第１インターフェース手段（１８）から送信された前記バーコードデータを処理し、暗号化して、前記ネットワーク（３４）に送信するための送信バーコードデータを作成し、
前記第２インターフェース手段（２０）は、前記データ処理手段（１９）からの前記送信バーコードデータを前記ネットワーク（３４）に送信する
ことを特徴とする電子計算機のインターフェースドライバプログラム。
【請求項５】
請求項４に記載の電子計算機のインターフェースドライバプログラムであって、
前記ネットワーク（３４）に接続され、前記バーコードデータをURLアドレスデータに変換する機能を備えているインデックスサーバ（３１）から、前記第２インターフェース手段（２０）が、前記ネットワークカード（１６）経由で、前記URLアドレスデータを取得して、
前記アプリケーションインターフェース手段（１７）は、前記URLアドレスデータを前記アプリケーションプログラム（４）に渡す
ことを特徴とする電子計算機のインターフェースドライバプログラム。
【請求項６】
請求項３ないし５から選択される１項に記載の電子計算機のインターフェースドライバプログラムであって、
前記ネットワーク（１３，３４）はインターネットである
ことを特徴とする電子計算機のインターフェースドライバプログラム。
【請求項７】
複数のデバイスが接続され、ＯＳによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムを記録した記録媒体において、
前記デバイスには前記デバイスを制御するためのデバイスドライバが存在し、
前記デバイスは、第１デバイスと第２デバイスからなり、
前記第１デバイスを制御する第１デバイスドライバが存在し、
前記第２デバイスを制御する第２デバイスドライバが存在し、
前記ＯＳには、前記ＯＳを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードがあり、
前記電子計算機用インターフェースドライバプログラムは、前記電子計算機で動作するアプリケーションプログラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の送受信を行うための共通のインターフェース手段として前記電子計算機を機能させるプログラムであり、
更に、前記電子計算機のインターフェースドライバプログラムは、前記カーネルモードで動作し、かつ、
前記アプリケーションプログラムからの命令を受信し命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段、
前記第１デバイスドライバから受信データを取り込むための第１インターフェース手段、
前記第２デバイスドライバへ送信データの送信を行うための第２インターフェース手段、及び、
前記受信データを処理して前記送信データを作成し、前記送信データを前記第２インターフェース手段に渡すためのデータ処理手段
として前記電子計算機を機能させるプログラムである
ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
【請求項８】
複数のデバイスが接続され、ＯＳによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムを記録した記録媒体において、
前記ＯＳは、前記ＯＳを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードを備え、
前記ＯＳは、前記複数のデバイスをそれぞれ制御するための複数のデバイスドライバを備え、
前記電子計算機用インターフェースドライバプログラムは、
前記複数のデバイスドライバからなるデバイスドライバ層と、前記ＯＳがカーネルモードで提供する基本プログラムとの間に位置し、前記カーネルモードで動作し、
かつ、（I）前記デバイスドライバの共通の窓口となるとともに、前記基本プログラムを通して行われる、前記デバイスドライバと前記アプリケーションプログラムとのやり取りをまとめて行ない、（II）前記アプリケーションプログラムから要求されたときに、前記複数のデバイスの間、又は、前記アプリケーションプログラムと前記デバイスの間のデータの送受信を行ない、（III）前記アプリケーションプログラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記ＯＳが標準で備えているインターフェースを通して、前記アプリケーションプログラムから出された前記命令を受信して、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の送受信、又は、前記デバイス間のデータのやりとりを経由する共通インターフェース手段として前記電子計算機を機能させるプログラムであり、
前記電子計算機用インターフェースドライバプログラムは、
前記アプリケーションプログラムからの命令を受信し、命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段、
前記デバイスの内の第１デバイスを制御するための第１デバイスドライバから受信データを取り込むための第１インターフェース手段、
前記デバイスの内の第２デバイスを制御するための第２デバイスドライバへ送信データの送信を行うための第２インターフェース手段、及び、
前記受信データを処理して前記送信データを作成し、前記送信データを前記第２インターフェース手段に渡すためのデータ処理手段
として前記電子計算機を機能させるプログラムである
ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
【請求項９】
請求項７又は８に記載の電子計算機のインターフェースドライバプログラムを記録した記録媒体であって、
前記第１デバイスは、画像データを取込むための画像装置（１５）であり、
前記第２デバイスは、ネットワーク（１３）に接続し前記画像データを前記ネットワーク（１３）に送信するためのネットワークカード（１６）であり、
前記第１インターフェース手段（１８）は、前記画像装置（１５）からの前記画像データを取り込み、
前記データ処理手段（１９）は、前記第１インターフェース手段（１８）から送信された前記画像データを処理し、前記ネットワーク（１３）に送信するための送信画像データを作成し、
前記第２インターフェース手段（２０）は、前記データ処理手段（１９）からの前記送信画像データを前記ネットワーク（１３）に送信する
ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
【請求項１０】
請求項７又は８に記載の電子計算機のインターフェースドライバプログラムを記録した記録媒体であって、
前記第１デバイスは、バーコードデータを読み取るためのバーコード読取装置（２８）であり、
前記第２デバイスは、ネットワーク（３４）に接続し前記バーコードデータを前記ネットワーク（３４）に送信するためのネットワークカード（１６）であり、
前記第１インターフェース手段（１８）は、前記バーコード読取装置（２８）からの前記バーコードデータを取り込み、
前記データ処理手段（１９）は、前記第１インターフェース手段（１８）から送信された前記バーコードデータを処理し、暗号化して、前記ネットワーク（３４）に送信するための送信バーコードデータを作成し、
前記第２インターフェース手段（２０）は、前記データ処理手段（１９）からの前記送信バーコードデータを前記ネットワーク（３４）に送信する
ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
【請求項１１】
請求項１０に記載の電子計算機のインターフェースドライバプログラムを記録した記録媒体であって、
前記ネットワーク（３４）に接続され、前記バーコードデータをURLアドレスデータに変換する機能を備えているインデックスサーバ（３１）から、前記第２インターフェース手段（２０）が、前記ネットワークカード（１６）経由で、前記URLアドレスデータを取得して、
前記アプリケーションインターフェース手段（１７）は、前記URLアドレスデータを前記アプリケーションプログラム（４）に渡す
ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
【請求項１２】
請求項９ないし１１から選択される１項に記載の電子計算機のインターフェースドライバプログラムを記録した記録媒体であって、
前記ネットワーク（１３，３４）はインターネットである
ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子計算機のデバイスドライバ間を制御するための電子計算機のインターフェースドライバプログラムに関する。詳しくは、カーネルモードで動作するデバイスドライバ間のインターフェース、及びデバイスドライバとアプリケーションプログラム間のインターフェースである、電子計算機のインターフェースドライバプログラムに関する。
【０００２】
【従来の技術】
電子計算機は、中央演算処理装置（CPU）、記憶装置（メモリ、ハードディスク等）、入力装置（キーボード、マウス等）、出力装置（ディスプレイ等）、周辺機器（プリンタ、スキャナ等）へ接続するためのカードスロットなどの多くのハードウェア資源からなり、記憶装置に記憶されている0S（Operating System）によってこれらのハードウェアが制御されて動作する。
【０００３】
電子計算機で動作する各種アプリケーションプログラムは0S上で動作する。0Sは電子計算機の全ての動作を制御し、異なるハードウェア仕様の違いを吸収し、アプリケーションプログラムに共通の環境を提供するものである。つまり、0Sは、キーボード入力や画面出力といった入出力機能、ディスクやメモリの管理など、多くのアプリケーションプログラムから共通して利用される基本的な機能を提供し、電子計算機のシステム全体を管理するソフトウェアで、「基本ソフトウェア」とも呼ばれることがある。
【０００４】
電子計算機のハードウェアは複数のメーカによって生産されて、メーカによってその仕様が異なることがある。ユーザがこのハードウェアの仕様の違いを意識しないで、アプリケーションプログラムの開発を行うことが望ましい。ハードウェアのこの仕様の違いは0Sが吸収しアプリケーションプログラムに対して共通の環境を提供する。
【０００５】
アプリケーションプログラムの開発者は、0Sの提供する機能を利用することによって、開発の手間を省くことができ、アプリケーションプログラムの操作性を統一することができる。ある0S向けに開発されたアプリケーションプログラムは、基本的にはその0Sが動作するどのような電子計算機でも利用できる。
【０００６】
0Sには、MS-DOS（登録商標）、UNIX（登録商標）、Linux、FreeBSD（登録商標）などに代表される数多くの種類があり、企業や家庭の一般ユーザが利用する0Sとして最もポピュラーなのはMicrosoft社のWindowsシリーズである。DTP業界やマルチメディア業界では、Apple社のMac OS（登録商標）が広く利用されている。企業のサーバや学術機関では各社のUNIX系の0Sや、無償配布されているLinuxやFreeBSDなどのUNIX系の0Sが使われることが多い。近年、サーバ用の0SとしてMicrosoft社のWindows NT/2000（登録商標）がシェアを伸ばしている。
【０００７】
〔従来のアーキテクチャ〕
ここで、図９には0Sの代表的なものとしてWindows NT/2000（登録商標）のアーキテクチャの概要を図示している。図９からわかるように、Windows NT/2000は、全体的にハードウェア２、ＯＳ３、実際のユーザーが要求する機能を実現するアプリケーションプログラム４という階層構造に成っている。
【０００８】
マイクロカーネル５１を中心に、その層の上で動作する各種ソフトウェア（カーネルモードソフトウェア）がカーネルモード８を構成している。そして、一番上の階層にあるアプリケーションプログラム４がユーザモード９で動作している。ＯＳ３は大きく分けて、エグゼクティブ５０、マイクロカーネル５１、ハードウェア抽象化層（HAL）５２からなる。HAL５２は、ハードウェア２のすぐ上の層に位置したハードウエアの制御を重視したプログラムで、プロセッサなどの多種多様なハードウェアの仕様を吸収し、上位層のサービス（マイクロカーネル５１，エグゼクティブ５０等）に同じ環境を提供するためのプログラムである。
【０００９】
マイクロカーネル５１はシステム全体の基本的な機能を提供するものである。エグゼクティブ５０は、マイクロカーネル５１、HAL５２で提供されるサービスを利用してＯＳ３の主なサービスの提供を実現するためのプログラムの総体である。エグゼクティブ５０には、キャッシュマネージャ５３、オブジェクトマネージャ５４、プロセスマネージャ５５、メモリマネージャ５６、I/Oマネージャ５７等の代表的なエグゼクティブプログラムが含まれている。
【００１０】
オブジェクトマネージャ５４は、存在するオブジェクトを監視し制御・調整を行うためのプログラムである。プロセスマネージャ５５は、動作しているプロセスを監視し調整を行うためのプログラムである。キャッシュマネージャ５３とメモリマネージャ５６は、メモリ・仮想メモリを制御・調整するためのプログラムである。I/Oマネージャ５７は、OSの入出力機能を監視・制御するプログラムである。電子計算機がこのエグゼクティブ５０で動作するとき、カーネルモード８と呼ばれている。
【００１１】
カーネルモード８では、ＯＳ３を操作するためのすべての命令が実行可能であり、仮に間違った命令を実行するとシステム全体に悪影響を及ぼしかねない。また、アプリケーションプログラム等のユーザに対して完全に開放されているユーザモード９がある。このユーザモード９では、システムに悪影響を与えないように、ＯＳ３を操作する命令を制限している。システムに悪影響を与えるような命令をシステムが自動的にとらえてくれるため、ユーザにとっては使い易い環境になっている。
【００１２】
しかし、このような制限を設けることはＯＳ３の機能の制限と同じことなので、ユーザモード９で動作するアプリケーションプログラム４はハードウェア２に関わる部分には直接アクセスできなくなり、カーネルモード８を経由しなければならない。カーネルモード８はＯＳ３の機能をフルに使うことが可能であり、各入出力装置へも完全にアクセスできる。また、カーネルモード８で動作するプログラムはユーザモード９のプログラムより優先的に処理され、高いパフォーマンスを得ることができる。
【００１３】
デバイスドライバ５はＯＳ３に属し、電子計算機の外部ハードウェアを管理するためのソフトウェアであり、カーネルモード８で動作する。通常、デバイスドライバ５一つに対して同じ属性を持つデバイスが一つ存在する。ユーザモード９で動作するアプリケーションプログラム４は、各デバイスにアクセスするためにデバイスドライバ５を経由しなければならない。
【００１４】
例えば、図１０に示すようにデバイスＡからデバイスＢへデータを転送する場合には、データの流れは「デバイスＡ」→「デバイスドライバＡ」→（カーネルモード８からユーザモード９へと動作モードの切換）「アプリケーションプログラム４」（ユーザモード９からカーネルモード８へと動作モードの切換）→「デバイスドライバＢ」→「デバイスＢ」となり、システムはカーネルモード８からユーザモード９へ又はユーザモード９からカーネルモード８へと動作モードの切り替えを行いながら処理を進めている。
【００１５】
ユーザモード９とカーネルモード８の切り替えは時間がかかる処理で、画像データなどのような大量のデータを転送するとき、転送速度が遅くなり、転送時間がかかる。このため、アプリケーションレベルで転送速度の高速化を図ることが困難である。アプリケーションプログラム４の処理ごとにユーザモード９とカーネルモード８の切り替えを行えなければならないからである。
【００１６】
ここで、従来のデバイス間にデータ転送をするときの動作手順を説明する。図１０は、アプリケーションプログラム４及びデバイスドライバ５と動作モード８，９の関係の概要を図示している。図から分かるように、アプリケーションプログラム４はユーザモード９で動作している。
【００１７】
デバイスドライバ５は、ＯＳ３に組み込まれてカーネルモード８で動作している。電子計算機のハードウェア２を構成するデバイス６は、各種の内部デバイスと電子計算機に接続されている外部デバイスからなり、それぞれ固有のデバイスドライバ５からのみ制御される。つまり、デバイス６へのアクセスは全てデバイスドライバ５を介して行われる。デバイスドライバ５は、ＯＳ３を介して、アプリケーションプログラム４からの命令により動作する。
【００１８】
次にデータ伝送の流れを図１１のフローチャートを参照しながら説明する。ユーザモード９で動作するアプリケーションプログラム４が、デバイスＡからデバイスＢへとデータを転送するときのデータの流れをシステムの動作モード８，９を比較しながら説明する。まず、アプリケーションプログラム４がデータの転送要求（命令）を出す（Ｓ５０）。
【００１９】
このときは、デバイスＡに対してデータ送信の要求（Ｓ５１）、デバイスＢに対してデータ受信の要求を出す（Ｓ５２）。システムの動作モードはユーザモード９からカーネルモード８にかわる。デバイスドライバＡがデータ送信の要求を受け取り（Ｓ５３）、デバイスＡに送信する（Ｓ５４）。デバイスＡがデータ送信の要求を受け取り（Ｓ５５）、データを送信する（Ｓ５６）。送信されたデータをデバイスドライバＡが受信し（Ｓ５７）、内部処理して（Ｓ５８）、アプリケーションプログラム４へデータを送信する（Ｓ５９）。
【００２０】
システムの動作モードがカーネルモード８からユーザモード９にかわり、アプリケーションプログラム４がデータを受信して処理し（Ｓ６０、Ｓ６１）、処理結果をデバイスドライバＢへ送信する（Ｓ６２）。システムの動作モードは再びユーザモード９からカーネルモード８に切り替わる。デバイスドライバＢはデータを受信し（Ｓ６３）、内部処理し（Ｓ６４）、結果をデバイスＢへ送信する（Ｓ６５）。
【００２１】
デバイスＢはデータを受け取り（Ｓ６６）、データ受取済の情報をデバイスドライバＢへ送る（Ｓ６７）。デバイスドライバＢはそのデータ受取済の情報を受け取り（Ｓ６８）、アプリケーションプログラム４へデータ転送完了を通知する（Ｓ６９）。システムはユーザモード９に替わり、アプリケーションプログラム４がデータ転送完了を受け取り（Ｓ７０）、次の処理にかかり、一連のデータ転送の処理が終了する（Ｓ７１）。
【００２２】
このように、データは「デバイスＡ」→「デバイスドライバＡ」→（動作モードの切り替え）「アプリケーションプログラム４」（動作モードの切り替え）→「デバイスドライバＢ」→「デバイスＢ」と転送される。この間、システムの動作モードはカーネルモード８とユーザモード９とに繰り返し切り替わりながら動作している。大量のデータを取り扱うようになるとこの動作モードの切り替え処理の数が多くなる。
【００２３】
更に、システム上に他のアプリケーションプログラムが同時に動作しているとき、このアプリケーションプログラムのためにシステムが動作モードの切り替えをするため、システム全体として動作モードの切り替え回数が多くなり、アプリケーションプログラム同士の実行処理が遅くなる原因になる。これは、動作モードの切り替え回数の増大はデータの送受信処理の低速化、特に画像処理などのリアルタイム性が強く求められる場合は、画面上に表示される画像の乱れなどの原因になりかねない。
【００２４】
このようなシステムにおいて、システムのパフォーマンスを確保するためにはハードウェア開発・設計技術と共にそれらのハードウェア２を制御するデバイスドライバ５の開発技術が重要になる。特に画像データのような大量のデータの転送を行うとき、ユーザモード９とカーネルモード８の切り替えを少なくして、データ転送の高速化を図ることが望ましい。また、データの保全性が強く求められているときユーザが触れないカーネルモード８内で転送することが望ましい。
【００２５】
【発明が解決しようとする課題】
本発明は上述のような技術背景のもとになされたものであり、下記目的を達成する。
本発明の目的は、アプリケーションプログラムとデバイスドライバとの共通のインターフェースを提供することができる電子計算機のインターフェースドライバプログラムを提供することにある。
【００２６】
本発明の他の目的は、カーネルモードで動作するデバイスドライバ間の共通インターフェースを提供し、データ転送の高速化を図ることができる電子計算機のインターフェースドライバプログラムを提供することにある。
本発明の更に他の目的は、前記共通インターフェースを提供し、データの秘密性が保護されるデータの安全転送を図ることができる電子計算機のインターフェースドライバプログラムを提供することにある。
【００２７】
【課題を解決するための手段】
本発明は、前記目的を達成するため、次の手段を採る。本発明の電子計算機のインターフェースドライバプログラムは、複数のデバイスが接続され、０Ｓによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムにおいて、前記デバイスには前記デバイスを制御するためのデバイスドライバが存在し、前記デバイスは、第１デバイスと第２デバイスからなり、前記第１デバイスを制御する第１デバイスドライバが存在し、前記第２デバイスを制御する第２デバイスドライバが存在し、前記ＯＳには、前記ＯＳを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードがあり、前記電子計算機用インターフェースドライバプログラムは、前記電子計算機で動作するアプリケーションプログ ラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の 送受信を行うための共通のインターフェース手段として前記電子計算機を機能させるプログラムであることを特徴とする。
【００２８】
更に、前記電子計算機用インターフェースドライバプログラムは、前記カーネルモードで動作し、かつ、前記アプリケーションプログラムからの命令を受信し命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーション インターフェース手段、前記第１デバイスドライバから受信データを取り込むための第１インターフェース手段、前記第２デバイスドライバへ送信データの送信を行うための第２インターフェース手段、及び、前記受信データを処理して前記送信データを作成し、前記送信データを前記第２インターフェース手段に渡すためのデータ処理手段として前記電子計算機を機能させるプログラムであることを特徴とする。
【００２９】
本発明の電子計算機のインターフェースドライバプログラムは、複数のデバイスが接続され、ＯＳによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムにおいて、前記ＯＳは、前記ＯＳを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードを備え、前記ＯＳは、前記複数のデバイスをそれぞれ制御するための複数のデバイスドライバを備え、前記電子計算機用インターフェースドライバプログラムは、前記複数のデバイスドライバからなるデバイスドライバ層と、前記ＯＳがカーネルモードで提供する基本プログラムとの間に位置し、前記カーネルモードで動作し、かつ、（I）前記デバイスドライバの共通の窓口となるとともに、前記基本プログラムを通して行われる、前記デバイスドライバと前記アプリケーションプログラムとのやり取りをまとめて行ない、（II）前記アプリケーションプログラムから要求されたときに、前記複数のデバイスの間、又は、前記アプリケーションプログラムと前記デバイスの間のデータの送受信を行ない、（III）前記アプリケーションプログラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記ＯＳが標準で備えているインターフェースを通して、前記アプリケーションプログラムから出された前記命令を受信して、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の送受信、又は、前記デバイス間のデータのやりとりを経由する共通インターフェース手段として前記電子計算機を機能させるプログラムであり、前記電子計算機用インターフェースドライバプログラムは、前記アプリケーションプログラムからの命令を受信し、命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段、前記デバイスの内の第１デバイスを制御するための第１デバイスドライバから受信データを取り込むための第１インターフェース手段、前記デバイスの内の第２デバイスを制御するための第２デバイスドライバへ送信データの送信を行うための第２インターフェース手段、及び、前記受信データを処理して前記送信データを作成し、前記送信データを前記第２インターフェース手段に渡すためのデータ処理手段として前記電子計算機を機能させるプログラムであることを特徴とする。
【００３０】
前記第１デバイスは、画像データを取込むための画像装置（１５）であり、
前記第２デバイスは、ネットワーク（１３）に接続し前記画像データを前記ネットワーク（１３）に送信するためのネットワークカード（１６）であり、
前記第１インターフェース手段（１８）は、前記画像装置（１５）からの前記画像データを取り込み、
前記データ処理手段（１９）は、前記第１インターフェース手段（１８）から送信された前記画像データを処理し、前記ネットワーク（１３）に送信するための送信画像データを作成し、
前記第２インターフェース手段（２０）は、前記データ処理手段（１９）からの前記送信画像データを前記ネットワーク（１３）に送信する
ことを特徴とする電子計算機のインターフェースドライバプログラムである。
前記データ処理手段（１９）は、前記画像データの色補正等の補正処理、圧縮処理、暗号化処理、パケット化処理、画像ファイル形式変更処理、又はフレーム抽出処理をすると良い。
【００３１】
前記第１デバイスは、バーコードデータを読み取るためのバーコード読取装置（２８）であり、前記第２デバイスは、ネットワーク（３４）に接続し前記バーコードデータを前記 ネットワーク（３４）に送信するためのネットワークカード（１６）であり、前記第１インターフェース手段（１８）は、前記バーコード読取装置（２８）から の前記バーコードデータを取り込み、前記データ処理手段（１９）は、前記第１インターフェース手段（１８）から送信された前記バーコードデータを処理し、暗号化して、前記ネットワーク（３４）に送信するための送信バーコードデータを作成し、前記第２インターフェース手段（２０）は、前記データ処理手段（１９）からの前記送信バーコードデータを前記ネットワーク（３４）に送信することを特徴とする電子計算機のインターフェースドライバプログラムである。前記データ処理手 段（１９）は、前記バーコードデータの補正処理、圧縮処理、暗号化処理、又はパケット化処理をすると良い。
【００３２】
また、前記ネットワーク（３４）に接続され、前記バーコードデータをＵＲＬアドレスデータに変換する機能を備えているインデックスサーバ（３１）から、前記第２インターフェース手段（２０）が、前記ネットワークカード（１６）経由で、前記ＵＲＬアドレスデータを取得して、前記アプリケーションインターフェース手段（１７）は、前記ＵＲＬアドレスデータを前記アプリケーションプログラム（４）に渡すと良い。
【００３３】
更に、前記ネットワーク（１３，３４）はインターネット、公衆無線通信網、又は公衆有線通信網であると良い。前記ＵＲＬアドレスデータは、ＩＰアドレスであると良い。前記ＵＲＬアドレスデータは、暗号化されていると良い。前記インデックスサーバ（３１）は、前記電子計算機を兼ねると良い。前記の電子計算機のインターフェースドライバプログラムを記録した記録媒体であると良い。
【００３４】
【発明の実施の形態】
次に、本発明の実施の形態を説明する。図１は、本発明の電子計算機のインターフェースドライバプログラムの実施の形態を示す概念図であり、共通インターフェースドライバを用いたＯＳの概念図である。図２は、データを転送するときのデータ及び命令の流れを示すフローチャートである。
【００３５】
電子計算機１はCPU、メモリ、周辺機器などのハードウェア２から構成され、これらのハードウェア２を記憶装置に記憶されているＯＳ３によって制御し動作させる。エンドユーザが使うアプリケーションプログラム４がＯＳ３が提供する環境で動作する。ＯＳ３には、周辺機器を制御するデバイスドライバ５が含まれており、アプリケーションプログラム４からの命令に従って、デバイス６を制御し、デバイス６からデータを受信したり、デバイス６へデータを送信したりする。
【００３６】
この実施の形態では、各デバイスドライバ５の共通の窓口となり、アプリケーションプログラム４とのやり取りをまとめて共通インターフェースドライバ７が行っている。また、アプリケーションプログラム４からの命令によって、デバイス６間のデータの送受信も制御することができる。共通インターフェースドライバ７は、デバイスドライバ５とデバイスドライバ５間のインターフェースで、カーネルモード８で動作するものである。
【００３７】
デバイス６には、デバイスＡとデバイスＢがあり、それぞれをデバイスドライバＡとデバイスドライバＢが制御する。デバイスＡからデバイスＢへデータを転送する場合のデータの流れを図２のフローチャートに示す。ユーザモード９で動作するアプリケーションプログラム４が、デバイスＡからデバイスＢへとデータを転送するとき（Ｓ１）、データ転送の要求（命令）を出す（Ｓ２）。このときは、システムの動作モードはユーザモード９である。
【００３８】
システムの動作モードはカーネルモード８に切り替わり、共通インターフェースドライバ７はアプリケーションプログラム４からのデータ転送の要求を受け取り（Ｓ３）、共通インターフェースドライバ７はこのデータ転送の要求を分析して（Ｓ４）、各処理部に指示を出す。デバイスドライバＡに対してデータ送信の要求を出す（Ｓ５）。デバイスドライバＢに対してデータ受信の要求を出す（Ｓ６）。
【００３９】
デバイスドライバＡが共通インターフェースドライバ７からのデータ送信の要求を受け取り（Ｓ７）、デバイスＡに送信する（Ｓ８）。デバイスＡがデータ送信の要求を受け取り（Ｓ９）、データをデバイスドライバＡへ送信する（Ｓ１０）。デバイスドライバＡがデータを受信し（Ｓ１１）、内部処理して（Ｓ１２）、共通インターフェースドライバ７に渡す（Ｓ１３）。共通インターフェースドライバ７は、データを受信し、圧縮・暗号化等の処理をして（Ｓ１４）から、結果をデバイスドライバＢへ送信する（Ｓ１５）。
【００４０】
デバイスドライバＢは共通インターフェースドライバ７からデータを受信し（Ｓ１６）、内部処理し（Ｓ１７）、この内部処理した処理結果をデバイスＢへ送信する（Ｓ１８）。デバイスＢはデータを受け取り（Ｓ１９）、データ受取済の情報をデバイスドライバＢへ送る（Ｓ２０）。デバイスドライバＢはそのデータ受取済の情報を受け取り（Ｓ２１）、データ転送完了の情報を共通インターフェースドライバ７に送る（Ｓ２２）。
【００４１】
共通インターフェースドライバ７はデータ転送完了の情報を受け取り（Ｓ２３）、アプリケーションプログラム４へデータ転送完了の情報を通知して次の命令を待機する（Ｓ２４）。ここで、システムの動作モードはカーネルモード８からユーザモード９に替わり、アプリケーションプログラム４がデータ転送完了の情報を受け取り（Ｓ２５）、次の処理にかかる。
【００４２】
これで、データ伝送の一連の作業が終了する（Ｓ２６）。このように、データは「デバイスＡ」→「デバイスドライバＡ」→「共通インターフェースドライバ７」→「デバイスドライバＢ」→「デバイスＢ」と転送され、この間、システムの動作モードはカーネルモード８で動作し、モードの切り替えを行う必要がなくなる。また、データはユーザモード９のアプリケーションプログラム４を経由せずに直接カーネルモード８でデバイス６間に転送され、大量のデータを高速に転送できるようになる。また、アプリケーションプログラム４から直接に取り扱いできないカーネルモード８で転送されているためデータの保全性も高まる。
【００４３】
［ネットワーク画像処理システム］
本発明の電子計算機のインターフェースドライバプログラムで画像データを処理してネットワークへ転送するシステムに適用したときの例を説明する。ネットワーク画像処理システム１０の構成は、図３のようになっている。図示するように、ネットワーク画像処理システム１０は、少なくても２台の電子計算機１１，１２からなり、電子計算機同士はネットワーク１３を経由して接続されている。電子計算機１１は外部のビデオカメラ１４から取り込んだ画像データを電子計算機１２へ送信し、電子計算機１２はこの画像データを受信して再生する。
【００４４】
電子計算機１１の拡張スロットにキャプチャーボード１５とLANボード１６が入っており、外部のビデオカメラ１４がキャプチャーボード１５に接続されている。ビデオカメラ１４で撮影した画像はキャプチャーボード１５より電子計算機１１に取り込まれ、電子計算機１１で画像の処理と圧縮を行った後にLANボード１６を通してネットワーク１３上の電子計算機１２へ転送される。電子計算機１２は同じくネットワーク１３に接続されているLANボード１６により画像データを受信し、再生を行う。
【００４５】
本実施の形態１では、WindowsNT/2000システム上に動作している共通インターフェースドライバ７の動作手順を説明する。図４は電子計算機１１の共通インターフェースドライバ７の内部構成、コマンド及び画像データの流れを示す。共通インターフェースドライバ７は、アプリケーション（AP）インターフェース部１７、データ取込部１８、データ処理部１９、TDIクライアントドライバ部（TDI Client Driver部）２０から構成され、各部分の機能は次の通りである。
【００４６】
APインターフェース部１７は、アプリケーションプログラム４と共通インターフェースドライバ７間のインターフェースを提供し、アプリケーションプログラム４からのパラメータ設定や動作開始などのコマンドを受け取り、分析して、各処理部に対して動作パラメータを渡し、画像データの転送状況を監視する。データ取込部１８は、キャプチャーボードドライバ２４を通じてキャプチャーボード１５から画像データを取り込む処理を行う。
【００４７】
キャプチャーボードドライバ２４は、キャプチャーボード１５を制御し画像データを取り込む役割をするものである。データ処理部１９は、データ取込部１８からの画像データを圧縮し、圧縮された画像データをネットワークへ転送するために所定の長さで区切ってパケット化を行う。TDIクライアントドライバ部２０は、LANドライバ２１と共通インターフェースドライバ７とのインターフェースを提供する。
【００４８】
LANドライバ２１は、プロトコルドライバ２２と、NDIS（Network Driver Interface Specification）ドライバ２３から構成され、LANボード１６を制御し、ネットワーク１３へデータを伝送するときの接続確立とプロトコルの制御を行う。プロトコルドライバ２２は、ネットワーク１３にデータを転送する際の通信プロトコルを制御するものである。
【００４９】
NDISドライバ２３は、プロトコルドライバ２２とLANボード１６とのインターフェースを提供するものである。TDIクライアントドライバ部２０は、パケット化された圧縮画像データをデータ処理部１９から受け取ってプロトコルドライバ２２に出力する。
【００５０】
［ネットワーク画像処理システムの動作］
次に、前記実施の形態１の動作を説明する。各部の動作状況およびデータの流れを、図５のフローチャートに図示している。このフローチャートはユーザモード９で動作しているアプリケーションプログラム４の指令により共通インターフェースドライバ７が、キャプチャーボード１５から画像データを受け取り、LANボード１６を経由してネットワーク１３に伝送する手順を示す。まず、アプリケーションプログラム４は、画像データの送受信の命令を出力し、データ転送が始まる（Ｓ１００）。
【００５１】
この出力命令は、Windowsで標準仕様で提供されているインターフェースを介して共通インターフェースドライバ７に出力される。共通インターフェースドライバ７のAPインターフェース部１７は、アプリケーションプログラム４からの命令を受信する（Ｓ１０１）。命令には、データ取込みパラメータとネットワークパラメータ及び動作開始コマンドなどが含まれている。
【００５２】
そして、APインターフェース部１７はデータ取込みパラメータをデータ取込部１８に渡し（Ｓ１０２）、ネットワークパラメータをTDI クライアントドライバ部２０に渡す（Ｓ１０３）。TDIクライアントドライバ部２０は、NDISドライバ２３の接続処理を行い（Ｓ１０４）、プロトコルドライバ２２のネットワークパラメータの設定を行う（Ｓ１０５）。この作業で、送られてくる画像データがネットワーク１３へ出力される準備が完了する。
【００５３】
データ取込部１８は、データ取込みパラメータの設定を行い（Ｓ１０６）、キャプチャーボードドライバ２４への接続処理を行い（Ｓ１０７）、ビデオカメラ１４からの画像を受信する準備が完了する。キャプチャーボード１５からの画像データはキャプチャーボードドライバ２４を通してデータ取込部１８の受信バッファに取り込まれる（Ｓ１０８）。そして、データ取込部１８は受信バッファに入っている画像データをデータ処理部１９に渡す（Ｓ１０９）。
【００５４】
データ取込部１８は、APインターフェース部１７から要求があったときに（Ｓ１１０）、アプリケーションプログラム４へ送るために、画像データを受け取った状況、画像データ処理の進行状況などの必要な情報を作成する（Ｓ１１１）。作成された情報をAPインターフェース部１７に渡す（Ｓ１１２）。データ処理部１９では、受け取った画像データの圧縮処理を行う（Ｓ１１３）。
【００５５】
ネットワークに転送するために圧縮された画像データをネットワーク所定の長さで区切ってパケットを作成する（Ｓ１１４）。パケット化された送信画像データはTDIクライアントドライバ部２０の送信バッファに送られる（Ｓ１１５）。このときも、データ取込部１８（Ｓ１１０〜Ｓ１１２）と同様にAPインターフェース部へ画像データの圧縮処理状況などの情報を作成することが可能であり（Ｓ１１６〜Ｓ１１７）、作成された情報はAPインターフェース部１７に渡すこともできる（Ｓ１１８）。
【００５６】
TDIクライアントドライバ部２０は、送信バッファに入った送信画像データをプロトコルドライバ２２に送信する（Ｓ１１９）。データ処理部と同様にAPインターフェース部へデータの転送状況などの情報を作成することが可能である（Ｓ１２０〜１２１）。作成された情報はAPインターフェース部１７に渡すこともできる（Ｓ１２２）。TDIクライアントドライバ部２０は、パケット送信完了の情報をAPインターフェース部１７に送信する（Ｓ１２３）。
【００５７】
最後にAPインターフェース部１７は、アプリケーションプログラム４へパケット転送完了を通知し（Ｓ１２４）、アプリケーションプログラム４からの要求を監視し（Ｓ１２５）、指示がない場合は、画像データの取り込みが継続して行われる（Ｓ１２５→Ｓ１０８）。ストップ指示があるときは（Ｓ１２５）、その命令を各処理部１７〜２０に指示して、処理を終了させる（Ｓ１２６）。
【００５８】
[バーコードデータURLアドレス変換システム]
次に、本発明の電子計算機のインターフェースドライバプログラムを、バーコードデータをURL（Universal Resource Locator）アドレスに変換してウェブブラウザでこのURLのホームページを閲覧するシステムに適用したときの実施の形態２を説明する。バーコードデータURLアドレス変換システム３０の構成は、図６のようになっている。
【００５９】
バーコードデータURLアドレス変換システム３０は、Bar-code to URL Index Server（以下、インデックスサーバ）３１と、このURLアドレスに対応するWeb Server（以下、サーバ）３３と、バーコード読込用のユーザ端末３２がインターネット３４によって接続されている。各ユーザ端末３２にはバーコードリーダ（Bar-code Reader）２８が接続されている。インデックスサーバ３１には、バーコードデータに対応するURLアドレス情報をあらかじめ登録したデータベース３５が用意されている。
【００６０】
インデックスサーバ３１は、インターネット３４から送られてきたバーコードデータを受け取り、そのバーコードデータに対応するURLアドレスをデータベース３５から検索して返信するためのサーバである。サーバ３３は、ウエブページを格納した通常のインターネット上のウエブサーバである。バーコードリーダ２８は、カタログを始めとする印刷物などに印刷されているバーコードを読み取るための装置である。
【００６１】
ユーザ端末３２が、バーコードリーダ２８で読み取ったバーコードデータを受け取り、データの暗号化処理を行った後、インターネット３４上のインデックスサーバ３１に送る。そして、ユーザ端末３２がインデックスサーバ３１から暗号化されたバーコードデータに対応するURLアドレスを受け取り、ウエブプラウザを起動させてURLアドレスに対応するウエブベージを表示する。ユーザ端末３２は、デスクトップパソコン、ノートパソコンやPDA等の携帯型の端末機であってもかまわない。
【００６２】
ユーザ端末３２は、入力されたバーコード情報をインターネット３４に送信し、それに対応するURLアドレス情報を受け取り、ウエブページを表示する機能を有するものであればどんな電子端末機であってもかまない。次に、本システムのユーザ端末３２上の動作を、WindowsNT/2000のOSを例にとって、説明する。図７には、ユーザ端末３２に動作する共通インターフェースドライバ７の概要を図示している。
【００６３】
共通インターフェースドライバ７は、APインターフェース部１７、データ取込部１８、データ処理部１９、TDIクライアントドライバ部２０から構成される。データ取込部１８は、USB/HIDドライバ２５を経由、バーコードリーダ２８からバーコードデータを取り込むためのものである。データ処理部１９は、データ取込部１８で取り込んだバーコードデータを処理し暗号化処理を行う。同時に、APインターフェース部１７からのインデックスサーバ３１の情報も受け取り、所定の長さで区切って転送データのパケットを作成する。
【００６４】
TDIクライアントドライバ部２０は、プロトコルドライバ２２とのインターフェースを提供し、暗号化処理部からのパケット化されたデータをLANドライバ２１に出力するためのものである。同時に、インデックスサーバ３１から得たURLアドレス情報をAPインターフェース部１７に渡す機能を有する。APインターフェース部１７は、共通インターフェースドライバ７の窓口となって、アプリケーションプログラム４とのインターフェースを提供する。
【００６５】
アプリケーションプログラム４からの命令を受け取り、命令を分析して、データ取込部１８、データ処理部１９、TDIクライアントドライバ部２０に指示を出し、各部からの情報をアプリケーションプログラム４に提供する。詳しくは、APインターフェース部１７はアプリケーションプログラム４からインデックスサーバ３１の設定パラメータ等の命令を受け取り、バーコードデータに対応するURLアドレス情報をアプリケーションプログラム４に返す。
【００６６】
アプリケーションプログラム４の指示によりデバイスドライバ５の開始と終了コマンドを発行する。また、デバイスドライバ５内の動作状況などの情報をアプリケーションプログラム４に返すなどの機能を有する。共通インターフェースドライバ７は、プロトコルドライバ２２を通して、LAN経由でまたは直接にインターネット３４へアクセス可能である。アプリケーションプログラム４は、ウェブブラウザなど他のアプリケーションプログラムの起動、終了、パラメータの受け渡しなどの制御が可能である。
【００６７】
[バーコードデータURLアドレス変換システムの動作]
次に、共通インターフェースドライバの動作手順は図８を参照の上説明する。ユーザモード９で動作しているアプリケーションプログラム４が、バーコードリーダ２８からバーコードデータを受け取り、インターネット３４上のインデックスサーバ３１に送信し、インデックスサーバ３１からのURL情報を受け取り、ウェブブラウザを起動させこのURLアドレスのページを表示させる。まず、アプリケーションプログラム４は、送受信の命令を出力する（Ｓ１５０）。
【００６８】
この命令は、Windowsで標準に提供されているインターフェースを介して出力される。共通インターフェースドライバ７のAPインターフェース部１７は、アプリケーションプログラム４からの命令を受信する（Ｓ１５１）。命令には、インデックスサーバ３１の設定パラメータ、ネットワークパラメータ及び動作開始コマンドなどが含まれている。そして、APインターフェース部１７は動作開始コマンドをデータ取込部１８に渡し（Ｓ１５２）、ネットワークパラメータをTDIクライアントドライバ部２０に渡す（Ｓ１５３）。
【００６９】
TDIクライアントドライバ部２０は、NDISドライバ２３への接続処理を行い（Ｓ１５４）、プロトコルドライバ２２のネットワークパラメータの設定を行う（Ｓ１５５）。この作業で、インターネット３４へのアクセスする準備が完了する。データ取込部１８は、動作開始コマンドでデータ取込パラメータの設定を行い（Ｓ１５６）、USB/HIDドライバ２５への接続処理を行い（Ｓ１５７）、バーコードリーダ２８からのバーコードデータを取込みする準備が完了する。
【００７０】
バーコードリーダ２８からのバーコードデータはUSB/HID 下層ドライバ２７、USB/HIDクラスドライバ２６を通じて、データ取込部１８の受信バッファに取り込まれる（Ｓ１５８）。そして、データ取込部１８は受信バッファに入っているバーコードデータをデータ処理部１９に渡す（Ｓ１５９）。データ取込部１８は、アプリケーションプログラム４から情報提供の要求があったとき（Ｓ１６０）、バーコードデータを受け取った状況などのアプリケーションプログラム４へ出力する情報を作成する（Ｓ１６１）。
【００７１】
この作成された情報をAPインターフェース部１７に渡す（Ｓ１６２）。データ処理部１９では、受け取ったバーコードデータを処理し、暗号化処理を行い（Ｓ１６３）、APインターフェース部１７からのインデックスサーバ３１の設定パラメータ等を受け取る（Ｓ１６４）。そして、暗号化されたバーコードデータとインデックスサーバ３１の設定パラメータを結合し、所定の長さで区切ってパケットデータを作成する（Ｓ１６５）。作成されたパケットデータはTDIクライアントドライバ部２０の送信バッファに送られる（Ｓ１６６）。
【００７２】
データ取込部１８と同様にアプリケーションプログラム４から情報提供の要求があったとき（Ｓ１６７）、データ処理部１９でデータの処理状況などのアプリケーションプログラム４へ出力する情報を作成する（Ｓ１６８）、その情報をAPインターフェース部１７に渡す（Ｓ１６９）。TDIクライアントドライバ部２０は、送信バッファに入ったデータをプロトコルドライバ２２に送信する（Ｓ１７０）。
【００７３】
プロトコルドライバ２２を通して、インデックスサーバ３１から送られてきたURLアドレスが受信バッファに入る（Ｓ１７１）。アプリケーションプログラム４から情報提供の要求があるときは、受信状況の情報を作成し、APインターフェース部１７に渡す（Ｓ１７２〜Ｓ１７４）。受信バッファのURLアドレス情報をAPインターフェース部１７に送信する（Ｓ１７５）。APインターフェース部１７は、URLアドレス情報も含めたアプリケーションプログラム４への情報を作成し、アプリケーションプログラム４へその情報を送信する（Ｓ１７６）。
【００７４】
そして、APインターフェース部１７はアプリケーションプログラム４からの要求を待つ。指示がない場合は、バーコードデータの取り込みが継続して行われる（Ｓ１７７→Ｓ１５８）。ストップ指示があるときは、その命令を各処理部に指示して、終了する（Ｓ１７８）。
【００７５】
【発明の効果】
本発明によると、次の効果が奏される。
OSに含まれている各種のデバイスドライバを一つの共通のデバイスドライバで制御できる共通インターフェースドライバをデバイスドライバの中間に設けることで、デバイス間のデータの送受信を高速、安全に転送できるようになった。
【００７６】
アプリケーションプログラムが動作するユーザモードとデバイスドライバが動作するカーネルモードとに切り替わる回数が減り、データ転送が高速になった。共通インターフェースドライバを設けることで、電子計算機に画像データを取り込みしてネットワークへ転送する処理速度が高速になった。
バーコード情報をはじめとする各種データをカーネルモードで扱うことで、情報データの秘密性が高まり、安全性が向上した。共通インターフェースドライバを設けることで、ドライバ開発の統一環境が提供できるようになり、開発時間の短縮、費用の削減ができるようになった。
【図面の簡単な説明】
【図１】図１は、本発明の実施の形態を示す概念面図である。
【図２】図２は、本発明の実施の形態の動作を示すフローチャートである。
【図３】図３は、ネットワーク画像処理システムの概念図である。
【図４】図４は、ネットワーク画像処理システムの共通インターフェースドライバの構成図である。
【図５】図５は、図４の共通インターフェースドライバの動作手順のフローチャートである。
【図６】図６は、バーコードデータURLアドレス変換システムの概念図である。
【図７】図７は、バーコードデータURLアドレス変換システムの共通インターフェースドライバの構成図である。
【図８】図８は、図７の共通インターフェースドライバの動作手順のフローチャートである。
【図９】図９は、Windowsのアーキテクチャを示す図である。
【図１０】図１０は、従来のOSとデバイスドライバの概念図である。
【図１１】図１１は、従来のデバイスドライバの動作手順を示すフローチャートである。
【符号の説明】
１…電子計算機
２…ハードウェア
３…ＯＳ
４…アプリケーションプログラム
５…デバイスドライバ
６…デバイス
７…共通インターフェースドライバ
８…カーネルモード
９…ユーザモード
１０…ネットワーク画像処理システム
１１…電子計算機
１２…電子計算機
１３…ネットワーク
１４…ビデオカメラ
１５…キャプチャーボード
１６…LANボード
１７…APインターフェース部
１８…データ取込部
１９…データ処理部
２０…ＴＤＩクライアントドライバ部
２１…LANドライバ
２２…プロトコルドライバ
２３…NDISドライバ
２４…キャプチャーボードドライバ
２５…USB/HIDドライバ
２６…USB/HIDクラスドライバ
２７…NDISドライバ
２８…バーコードリーダ
３０…アドレス変換システム
３１…インデックスサーバ
３２…ユーザ端末
３３…サーバ
３４…インターネット
３５…データベース
【図１】
0005055492.tif 000002
【図２】
0005055492.tif 000003
【図３】
0005055492.tif 000004
【図４】
0005055492.tif 000005
【図５】
0005055492.tif 000006
【図６】
0005055492.tif 000007
【図７】
0005055492.tif 000008
【図８】
0005055492.tif 000009
【図９】
0005055492.tif 000010
【図１０】
0005055492.tif 000011
【図１１】
0005055492.tif 000012