JP5055492B2 - 電子計算機のインターフェースドライバプログラム及びその記録媒体 - Google Patents

電子計算機のインターフェースドライバプログラム及びその記録媒体 Download PDF

Info

Publication number
JP5055492B2
JP5055492B2 JP2001136135A JP2001136135A JP5055492B2 JP 5055492 B2 JP5055492 B2 JP 5055492B2 JP 2001136135 A JP2001136135 A JP 2001136135A JP 2001136135 A JP2001136135 A JP 2001136135A JP 5055492 B2 JP5055492 B2 JP 5055492B2
Authority
JP
Japan
Prior art keywords
data
interface
driver
program
electronic computer
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.)
Expired - Lifetime
Application number
JP2001136135A
Other languages
English (en)
Other versions
JP2002328878A (ja
Inventor
幸市郎 小路
仁 志村
建平 衛
智幸 川出
隆 野▲崎▼
秀朗 三浦
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.)
Science Park Corp
Original Assignee
Science Park 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
Priority to JP2001136135A priority Critical patent/JP5055492B2/ja
Application filed by Science Park Corp filed Critical Science Park Corp
Priority to PCT/JP2002/004318 priority patent/WO2002091195A1/ja
Priority to US10/332,539 priority patent/US7395541B2/en
Priority to KR1020037000099A priority patent/KR100554115B1/ko
Priority to CNB028015622A priority patent/CN1318987C/zh
Priority to EP02722899A priority patent/EP1387282A4/en
Priority to EP09005728.2A priority patent/EP2090979B1/en
Publication of JP2002328878A publication Critical patent/JP2002328878A/ja
Priority to US12/003,891 priority patent/US7730497B2/en
Application granted granted Critical
Publication of JP5055492B2 publication Critical patent/JP5055492B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Manipulator (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、電子計算機のデバイスドライバ間を制御するための電子計算機のインターフェースドライバプログラムに関する。詳しくは、カーネルモードで動作するデバイスドライバ間のインターフェース、及びデバイスドライバとアプリケーションプログラム間のインターフェースである、電子計算機のインターフェースドライバプログラムに関する。
【0002】
【従来の技術】
電子計算機は、中央演算処理装置(CPU)、記憶装置(メモリ、ハードディスク等)、入力装置(キーボード、マウス等)、出力装置(ディスプレイ等)、周辺機器(プリンタ、スキャナ等)へ接続するためのカードスロットなどの多くのハードウェア資源からなり、記憶装置に記憶されている0S(Operating System)によってこれらのハードウェアが制御されて動作する。
【0003】
電子計算機で動作する各種アプリケーションプログラムは0S上で動作する。0Sは電子計算機の全ての動作を制御し、異なるハードウェア仕様の違いを吸収し、アプリケーションプログラムに共通の環境を提供するものである。つまり、0Sは、キーボード入力や画面出力といった入出力機能、ディスクやメモリの管理など、多くのアプリケーションプログラムから共通して利用される基本的な機能を提供し、電子計算機のシステム全体を管理するソフトウェアで、「基本ソフトウェア」とも呼ばれることがある。
【0004】
電子計算機のハードウェアは複数のメーカによって生産されて、メーカによってその仕様が異なることがある。ユーザがこのハードウェアの仕様の違いを意識しないで、アプリケーションプログラムの開発を行うことが望ましい。ハードウェアのこの仕様の違いは0Sが吸収しアプリケーションプログラムに対して共通の環境を提供する。
【0005】
アプリケーションプログラムの開発者は、0Sの提供する機能を利用することによって、開発の手間を省くことができ、アプリケーションプログラムの操作性を統一することができる。ある0S向けに開発されたアプリケーションプログラムは、基本的にはその0Sが動作するどのような電子計算機でも利用できる。
【0006】
0Sには、MS-DOS(登録商標)、UNIX(登録商標)、Linux、FreeBSD(登録商標)などに代表される数多くの種類があり、企業や家庭の一般ユーザが利用する0Sとして最もポピュラーなのはMicrosoft社のWindowsシリーズである。DTP業界やマルチメディア業界では、Apple社のMac OS(登録商標)が広く利用されている。企業のサーバや学術機関では各社のUNIX系の0Sや、無償配布されているLinuxやFreeBSDなどのUNIX系の0Sが使われることが多い。近年、サーバ用の0SとしてMicrosoft社のWindows NT/2000(登録商標)がシェアを伸ばしている。
【0007】
〔従来のアーキテクチャ〕
ここで、図9には0Sの代表的なものとしてWindows NT/2000(登録商標)のアーキテクチャの概要を図示している。図9からわかるように、Windows NT/2000は、全体的にハードウェア2、OS3、実際のユーザーが要求する機能を実現するアプリケーションプログラム4という階層構造に成っている。
【0008】
マイクロカーネル51を中心に、その層の上で動作する各種ソフトウェア(カーネルモードソフトウェア)がカーネルモード8を構成している。そして、一番上の階層にあるアプリケーションプログラム4がユーザモード9で動作している。OS3は大きく分けて、エグゼクティブ50、マイクロカーネル51、ハードウェア抽象化層(HAL)52からなる。HAL52は、ハードウェア2のすぐ上の層に位置したハードウエアの制御を重視したプログラムで、プロセッサなどの多種多様なハードウェアの仕様を吸収し、上位層のサービス(マイクロカーネル51,エグゼクティブ50等)に同じ環境を提供するためのプログラムである。
【0009】
マイクロカーネル51はシステム全体の基本的な機能を提供するものである。エグゼクティブ50は、マイクロカーネル51、HAL52で提供されるサービスを利用してOS3の主なサービスの提供を実現するためのプログラムの総体である。エグゼクティブ50には、キャッシュマネージャ53、オブジェクトマネージャ54、プロセスマネージャ55、メモリマネージャ56、I/Oマネージャ57等の代表的なエグゼクティブプログラムが含まれている。
【0010】
オブジェクトマネージャ54は、存在するオブジェクトを監視し制御・調整を行うためのプログラムである。プロセスマネージャ55は、動作しているプロセスを監視し調整を行うためのプログラムである。キャッシュマネージャ53とメモリマネージャ56は、メモリ・仮想メモリを制御・調整するためのプログラムである。I/Oマネージャ57は、OSの入出力機能を監視・制御するプログラムである。電子計算機がこのエグゼクティブ50で動作するとき、カーネルモード8と呼ばれている。
【0011】
カーネルモード8では、OS3を操作するためのすべての命令が実行可能であり、仮に間違った命令を実行するとシステム全体に悪影響を及ぼしかねない。また、アプリケーションプログラム等のユーザに対して完全に開放されているユーザモード9がある。このユーザモード9では、システムに悪影響を与えないように、OS3を操作する命令を制限している。システムに悪影響を与えるような命令をシステムが自動的にとらえてくれるため、ユーザにとっては使い易い環境になっている。
【0012】
しかし、このような制限を設けることはOS3の機能の制限と同じことなので、ユーザモード9で動作するアプリケーションプログラム4はハードウェア2に関わる部分には直接アクセスできなくなり、カーネルモード8を経由しなければならない。カーネルモード8はOS3の機能をフルに使うことが可能であり、各入出力装置へも完全にアクセスできる。また、カーネルモード8で動作するプログラムはユーザモード9のプログラムより優先的に処理され、高いパフォーマンスを得ることができる。
【0013】
デバイスドライバ5はOS3に属し、電子計算機の外部ハードウェアを管理するためのソフトウェアであり、カーネルモード8で動作する。通常、デバイスドライバ5一つに対して同じ属性を持つデバイスが一つ存在する。ユーザモード9で動作するアプリケーションプログラム4は、各デバイスにアクセスするためにデバイスドライバ5を経由しなければならない。
【0014】
例えば、図10に示すようにデバイスAからデバイスBへデータを転送する場合には、データの流れは「デバイスA」→「デバイスドライバA」→(カーネルモード8からユーザモード9へと動作モードの切換)「アプリケーションプログラム4」(ユーザモード9からカーネルモード8へと動作モードの切換)→「デバイスドライバB」→「デバイスB」となり、システムはカーネルモード8からユーザモード9へ又はユーザモード9からカーネルモード8へと動作モードの切り替えを行いながら処理を進めている。
【0015】
ユーザモード9とカーネルモード8の切り替えは時間がかかる処理で、画像データなどのような大量のデータを転送するとき、転送速度が遅くなり、転送時間がかかる。このため、アプリケーションレベルで転送速度の高速化を図ることが困難である。アプリケーションプログラム4の処理ごとにユーザモード9とカーネルモード8の切り替えを行えなければならないからである。
【0016】
ここで、従来のデバイス間にデータ転送をするときの動作手順を説明する。図10は、アプリケーションプログラム4及びデバイスドライバ5と動作モード8,9の関係の概要を図示している。図から分かるように、アプリケーションプログラム4はユーザモード9で動作している。
【0017】
デバイスドライバ5は、OS3に組み込まれてカーネルモード8で動作している。電子計算機のハードウェア2を構成するデバイス6は、各種の内部デバイスと電子計算機に接続されている外部デバイスからなり、それぞれ固有のデバイスドライバ5からのみ制御される。つまり、デバイス6へのアクセスは全てデバイスドライバ5を介して行われる。デバイスドライバ5は、OS3を介して、アプリケーションプログラム4からの命令により動作する。
【0018】
次にデータ伝送の流れを図11のフローチャートを参照しながら説明する。ユーザモード9で動作するアプリケーションプログラム4が、デバイスAからデバイスBへとデータを転送するときのデータの流れをシステムの動作モード8,9を比較しながら説明する。まず、アプリケーションプログラム4がデータの転送要求(命令)を出す(S50)。
【0019】
このときは、デバイスAに対してデータ送信の要求(S51)、デバイスBに対してデータ受信の要求を出す(S52)。システムの動作モードはユーザモード9からカーネルモード8にかわる。デバイスドライバAがデータ送信の要求を受け取り(S53)、デバイスAに送信する(S54)。デバイスAがデータ送信の要求を受け取り(S55)、データを送信する(S56)。送信されたデータをデバイスドライバAが受信し(S57)、内部処理して(S58)、アプリケーションプログラム4へデータを送信する(S59)。
【0020】
システムの動作モードがカーネルモード8からユーザモード9にかわり、アプリケーションプログラム4がデータを受信して処理し(S60、S61)、処理結果をデバイスドライバBへ送信する(S62)。システムの動作モードは再びユーザモード9からカーネルモード8に切り替わる。デバイスドライバBはデータを受信し(S63)、内部処理し(S64)、結果をデバイスBへ送信する(S65)。
【0021】
デバイスBはデータを受け取り(S66)、データ受取済の情報をデバイスドライバBへ送る(S67)。デバイスドライバBはそのデータ受取済の情報を受け取り(S68)、アプリケーションプログラム4へデータ転送完了を通知する(S69)。システムはユーザモード9に替わり、アプリケーションプログラム4がデータ転送完了を受け取り(S70)、次の処理にかかり、一連のデータ転送の処理が終了する(S71)。
【0022】
このように、データは「デバイスA」→「デバイスドライバA」→(動作モードの切り替え)「アプリケーションプログラム4」(動作モードの切り替え)→「デバイスドライバB」→「デバイスB」と転送される。この間、システムの動作モードはカーネルモード8とユーザモード9とに繰り返し切り替わりながら動作している。大量のデータを取り扱うようになるとこの動作モードの切り替え処理の数が多くなる。
【0023】
更に、システム上に他のアプリケーションプログラムが同時に動作しているとき、このアプリケーションプログラムのためにシステムが動作モードの切り替えをするため、システム全体として動作モードの切り替え回数が多くなり、アプリケーションプログラム同士の実行処理が遅くなる原因になる。これは、動作モードの切り替え回数の増大はデータの送受信処理の低速化、特に画像処理などのリアルタイム性が強く求められる場合は、画面上に表示される画像の乱れなどの原因になりかねない。
【0024】
このようなシステムにおいて、システムのパフォーマンスを確保するためにはハードウェア開発・設計技術と共にそれらのハードウェア2を制御するデバイスドライバ5の開発技術が重要になる。特に画像データのような大量のデータの転送を行うとき、ユーザモード9とカーネルモード8の切り替えを少なくして、データ転送の高速化を図ることが望ましい。また、データの保全性が強く求められているときユーザが触れないカーネルモード8内で転送することが望ましい。
【0025】
【発明が解決しようとする課題】
本発明は上述のような技術背景のもとになされたものであり、下記目的を達成する。
本発明の目的は、アプリケーションプログラムとデバイスドライバとの共通のインターフェースを提供することができる電子計算機のインターフェースドライバプログラムを提供することにある。
【0026】
本発明の他の目的は、カーネルモードで動作するデバイスドライバ間の共通インターフェースを提供し、データ転送の高速化を図ることができる電子計算機のインターフェースドライバプログラムを提供することにある。
本発明の更に他の目的は、前記共通インターフェースを提供し、データの秘密性が保護されるデータの安全転送を図ることができる電子計算機のインターフェースドライバプログラムを提供することにある。
【0027】
【課題を解決するための手段】
本発明は、前記目的を達成するため、次の手段を採る。本発明の電子計算機のインターフェースドライバプログラムは、複数のデバイスが接続され、0Sによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムにおいて、前記デバイスには前記デバイスを制御するためのデバイスドライバが存在し、前記デバイスは、第1デバイスと第2デバイスからなり、前記第1デバイスを制御する第1デバイスドライバが存在し、前記第2デバイスを制御する第2デバイスドライバが存在し、前記OSには、前記OSを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードがあり、前記電子計算機用インターフェースドライバプログラムは、前記電子計算機で動作するアプリケーションプログ ラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の 送受信を行うための共通のインターフェース手段として前記電子計算機を機能させるプログラムであることを特徴とする。
【0028】
更に、前記電子計算機用インターフェースドライバプログラムは、前記カーネルモードで動作し、かつ、前記アプリケーションプログラムからの命令を受信し命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーション インターフェース手段、前記第1デバイスドライバから受信データを取り込むための第1インターフェース手段、前記第2デバイスドライバへ送信データの送信を行うための第2インターフェース手段、及び、前記受信データを処理して前記送信データを作成し、前記送信データを前記第2インターフェース手段に渡すためのデータ処理手段として前記電子計算機を機能させるプログラムであることを特徴とする。
【0029】
本発明の電子計算機のインターフェースドライバプログラムは、複数のデバイスが接続され、OSによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムにおいて、前記OSは、前記OSを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードを備え、前記OSは、前記複数のデバイスをそれぞれ制御するための複数のデバイスドライバを備え、前記電子計算機用インターフェースドライバプログラムは、前記複数のデバイスドライバからなるデバイスドライバ層と、前記OSがカーネルモードで提供する基本プログラムとの間に位置し、前記カーネルモードで動作し、かつ、(I)前記デバイスドライバの共通の窓口となるとともに、前記基本プログラムを通して行われる、前記デバイスドライバと前記アプリケーションプログラムとのやり取りをまとめて行ない、(II)前記アプリケーションプログラムから要求されたときに、前記複数のデバイスの間、又は、前記アプリケーションプログラムと前記デバイスの間のデータの送受信を行ない、(III)前記アプリケーションプログラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記OSが標準で備えているインターフェースを通して、前記アプリケーションプログラムから出された前記命令を受信して、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の送受信、又は、前記デバイス間のデータのやりとりを経由する共通インターフェース手段として前記電子計算機を機能させるプログラムであり、前記電子計算機用インターフェースドライバプログラムは、前記アプリケーションプログラムからの命令を受信し、命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段、前記デバイスの内の第1デバイスを制御するための第1デバイスドライバから受信データを取り込むための第1インターフェース手段、前記デバイスの内の第2デバイスを制御するための第2デバイスドライバへ送信データの送信を行うための第2インターフェース手段、及び、前記受信データを処理して前記送信データを作成し、前記送信データを前記第2インターフェース手段に渡すためのデータ処理手段として前記電子計算機を機能させるプログラムであることを特徴とする。
【0030】
前記第1デバイスは、画像データを取込むための画像装置(15)であり、
前記第2デバイスは、ネットワーク(13)に接続し前記画像データを前記ネットワーク(13)に送信するためのネットワークカード(16)であり、
前記第1インターフェース手段(18)は、前記画像装置(15)からの前記画像データを取り込み、
前記データ処理手段(19)は、前記第1インターフェース手段(18)から送信された前記画像データを処理し、前記ネットワーク(13)に送信するための送信画像データを作成し、
前記第2インターフェース手段(20)は、前記データ処理手段(19)からの前記送信画像データを前記ネットワーク(13)に送信する
ことを特徴とする電子計算機のインターフェースドライバプログラムである。
前記データ処理手段(19)は、前記画像データの色補正等の補正処理、圧縮処理、暗号化処理、パケット化処理、画像ファイル形式変更処理、又はフレーム抽出処理をすると良い。
【0031】
前記第1デバイスは、バーコードデータを読み取るためのバーコード読取装置(28)であり、前記第2デバイスは、ネットワーク(34)に接続し前記バーコードデータを前記 ネットワーク(34)に送信するためのネットワークカード(16)であり、前記第1インターフェース手段(18)は、前記バーコード読取装置(28)から の前記バーコードデータを取り込み、前記データ処理手段(19)は、前記第1インターフェース手段(18)から送信された前記バーコードデータを処理し、暗号化して、前記ネットワーク(34)に送信するための送信バーコードデータを作成し、前記第2インターフェース手段(20)は、前記データ処理手段(19)からの前記送信バーコードデータを前記ネットワーク(34)に送信することを特徴とする電子計算機のインターフェースドライバプログラムである。前記データ処理手 段(19)は、前記バーコードデータの補正処理、圧縮処理、暗号化処理、又はパケット化処理をすると良い。
【0032】
また、前記ネットワーク(34)に接続され、前記バーコードデータをURLアドレスデータに変換する機能を備えているインデックスサーバ(31)から、前記第2インターフェース手段(20)、前記ネットワークカード(16)経由で、前記URLアドレスデータを取得して、前記アプリケーションインターフェース手段(17)は、前記URLアドレスデータを前記アプリケーションプログラム(4)に渡すと良い。
【0033】
更に、前記ネットワーク(13,34)はインターネット、公衆無線通信網、又は公衆有線通信網であると良い。前記URLアドレスデータは、IPアドレスであると良い。前記URLアドレスデータは、暗号化されていると良い。前記インデックスサーバ(31)は、前記電子計算機を兼ねると良い。前記の電子計算機のインターフェースドライバプログラム記録した記録媒体であると良い。
【0034】
【発明の実施の形態】
次に、本発明の実施の形態を説明する。図1は、本発明の電子計算機のインターフェースドライバプログラムの実施の形態を示す概念図であり、共通インターフェースドライバを用いたOSの概念図である。図2は、データを転送するときのデータ及び命令の流れを示すフローチャートである。
【0035】
電子計算機1はCPU、メモリ、周辺機器などのハードウェア2から構成され、これらのハードウェア2を記憶装置に記憶されているOS3によって制御し動作させる。エンドユーザが使うアプリケーションプログラム4がOS3が提供する環境で動作する。OS3には、周辺機器を制御するデバイスドライバ5が含まれており、アプリケーションプログラム4からの命令に従って、デバイス6を制御し、デバイス6からデータを受信したり、デバイス6へデータを送信したりする。
【0036】
この実施の形態では、各デバイスドライバ5の共通の窓口となり、アプリケーションプログラム4とのやり取りをまとめて共通インターフェースドライバ7が行っている。また、アプリケーションプログラム4からの命令によって、デバイス6間のデータの送受信も制御することができる。共通インターフェースドライバ7は、デバイスドライバ5とデバイスドライバ5間のインターフェースで、カーネルモード8で動作するものである。
【0037】
デバイス6には、デバイスAとデバイスBがあり、それぞれをデバイスドライバAとデバイスドライバBが制御する。デバイスAからデバイスBへデータを転送する場合のデータの流れを図2のフローチャートに示す。ユーザモード9で動作するアプリケーションプログラム4が、デバイスAからデバイスBへとデータを転送するとき(S1)、データ転送の要求(命令)を出す(S2)。このときは、システムの動作モードはユーザモード9である。
【0038】
システムの動作モードはカーネルモード8に切り替わり、共通インターフェースドライバ7はアプリケーションプログラム4からのデータ転送の要求を受け取り(S3)、共通インターフェースドライバ7はこのデータ転送の要求を分析して(S4)、各処理部に指示を出す。デバイスドライバAに対してデータ送信の要求を出す(S5)。デバイスドライバBに対してデータ受信の要求を出す(S6)。
【0039】
デバイスドライバAが共通インターフェースドライバ7からのデータ送信の要求を受け取り(S7)、デバイスAに送信する(S8)。デバイスAがデータ送信の要求を受け取り(S9)、データをデバイスドライバAへ送信する(S10)。デバイスドライバAがデータを受信し(S11)、内部処理して(S12)、共通インターフェースドライバ7に渡す(S13)。共通インターフェースドライバ7は、データを受信し、圧縮・暗号化等の処理をして(S14)から、結果をデバイスドライバBへ送信する(S15)。
【0040】
デバイスドライバBは共通インターフェースドライバ7からデータを受信し(S16)、内部処理し(S17)、この内部処理した処理結果をデバイスBへ送信する(S18)。デバイスBはデータを受け取り(S19)、データ受取済の情報をデバイスドライバBへ送る(S20)。デバイスドライバBはそのデータ受取済の情報を受け取り(S21)、データ転送完了の情報を共通インターフェースドライバ7に送る(S22)。
【0041】
共通インターフェースドライバ7はデータ転送完了の情報を受け取り(S23)、アプリケーションプログラム4へデータ転送完了の情報を通知して次の命令を待機する(S24)。ここで、システムの動作モードはカーネルモード8からユーザモード9に替わり、アプリケーションプログラム4がデータ転送完了の情報を受け取り(S25)、次の処理にかかる。
【0042】
これで、データ伝送の一連の作業が終了する(S26)。このように、データは「デバイスA」→「デバイスドライバA」→「共通インターフェースドライバ7」→「デバイスドライバB」→「デバイスB」と転送され、この間、システムの動作モードはカーネルモード8で動作し、モードの切り替えを行う必要がなくなる。また、データはユーザモード9のアプリケーションプログラム4を経由せずに直接カーネルモード8でデバイス6間に転送され、大量のデータを高速に転送できるようになる。また、アプリケーションプログラム4から直接に取り扱いできないカーネルモード8で転送されているためデータの保全性も高まる。
【0043】
[ネットワーク画像処理システム]
本発明の電子計算機のインターフェースドライバプログラムで画像データを処理してネットワークへ転送するシステムに適用したときの例を説明する。ネットワーク画像処理システム10の構成は、図3のようになっている。図示するように、ネットワーク画像処理システム10は、少なくても2台の電子計算機11,12からなり、電子計算機同士はネットワーク13を経由して接続されている。電子計算機11は外部のビデオカメラ14から取り込んだ画像データを電子計算機12へ送信し、電子計算機12はこの画像データを受信して再生する。
【0044】
電子計算機11の拡張スロットにキャプチャーボード15とLANボード16が入っており、外部のビデオカメラ14がキャプチャーボード15に接続されている。ビデオカメラ14で撮影した画像はキャプチャーボード15より電子計算機11に取り込まれ、電子計算機11で画像の処理と圧縮を行った後にLANボード16を通してネットワーク13上の電子計算機12へ転送される。電子計算機12は同じくネットワーク13に接続されているLANボード16により画像データを受信し、再生を行う。
【0045】
本実施の形態1では、WindowsNT/2000システム上に動作している共通インターフェースドライバ7の動作手順を説明する。図4は電子計算機11の共通インターフェースドライバ7の内部構成、コマンド及び画像データの流れを示す。共通インターフェースドライバ7は、アプリケーション(AP)インターフェース部17、データ取込部18、データ処理部19、TDIクライアントドライバ部(TDI Client Driver部)20から構成され、各部分の機能は次の通りである。
【0046】
APインターフェース部17は、アプリケーションプログラム4と共通インターフェースドライバ7間のインターフェースを提供し、アプリケーションプログラム4からのパラメータ設定や動作開始などのコマンドを受け取り、分析して、各処理部に対して動作パラメータを渡し、画像データの転送状況を監視する。データ取込部18は、キャプチャーボードドライバ24を通じてキャプチャーボード15から画像データを取り込む処理を行う。
【0047】
キャプチャーボードドライバ24は、キャプチャーボード15を制御し画像データを取り込む役割をするものである。データ処理部19は、データ取込部18からの画像データを圧縮し、圧縮された画像データをネットワークへ転送するために所定の長さで区切ってパケット化を行う。TDIクライアントドライバ部20は、LANドライバ21と共通インターフェースドライバ7とのインターフェースを提供する。
【0048】
LANドライバ21は、プロトコルドライバ22と、NDIS(Network Driver Interface Specification)ドライバ23から構成され、LANボード16を制御し、ネットワーク13へデータを伝送するときの接続確立とプロトコルの制御を行う。プロトコルドライバ22は、ネットワーク13にデータを転送する際の通信プロトコルを制御するものである。
【0049】
NDISドライバ23は、プロトコルドライバ22とLANボード16とのインターフェースを提供するものである。TDIクライアントドライバ部20は、パケット化された圧縮画像データをデータ処理部19から受け取ってプロトコルドライバ22に出力する。
【0050】
[ネットワーク画像処理システムの動作]
次に、前記実施の形態1の動作を説明する。各部の動作状況およびデータの流れを、図5のフローチャートに図示している。このフローチャートはユーザモード9で動作しているアプリケーションプログラム4の指令により共通インターフェースドライバ7が、キャプチャーボード15から画像データを受け取り、LANボード16を経由してネットワーク13に伝送する手順を示す。まず、アプリケーションプログラム4は、画像データの送受信の命令を出力し、データ転送が始まる(S100)。
【0051】
この出力命令は、Windowsで標準仕様で提供されているインターフェースを介して共通インターフェースドライバ7に出力される。共通インターフェースドライバ7のAPインターフェース部17は、アプリケーションプログラム4からの命令を受信する(S101)。命令には、データ取込みパラメータとネットワークパラメータ及び動作開始コマンドなどが含まれている。
【0052】
そして、APインターフェース部17はデータ取込みパラメータをデータ取込部18に渡し(S102)、ネットワークパラメータをTDI クライアントドライバ部20に渡す(S103)。TDIクライアントドライバ部20は、NDISドライバ23の接続処理を行い(S104)、プロトコルドライバ22のネットワークパラメータの設定を行う(S105)。この作業で、送られてくる画像データがネットワーク13へ出力される準備が完了する。
【0053】
データ取込部18は、データ取込みパラメータの設定を行い(S106)、キャプチャーボードドライバ24への接続処理を行い(S107)、ビデオカメラ14からの画像を受信する準備が完了する。キャプチャーボード15からの画像データはキャプチャーボードドライバ24を通してデータ取込部18の受信バッファに取り込まれる(S108)。そして、データ取込部18は受信バッファに入っている画像データをデータ処理部19に渡す(S109)。
【0054】
データ取込部18は、APインターフェース部17から要求があったときに(S110)、アプリケーションプログラム4へ送るために、画像データを受け取った状況、画像データ処理の進行状況などの必要な情報を作成する(S111)。作成された情報をAPインターフェース部17に渡す(S112)。データ処理部19では、受け取った画像データの圧縮処理を行う(S113)。
【0055】
ネットワークに転送するために圧縮された画像データをネットワーク所定の長さで区切ってパケットを作成する(S114)。パケット化された送信画像データはTDIクライアントドライバ部20の送信バッファに送られる(S115)。このときも、データ取込部18(S110〜S112)と同様にAPインターフェース部へ画像データの圧縮処理状況などの情報を作成することが可能であり(S116〜S117)、作成された情報はAPインターフェース部17に渡すこともできる(S118)。
【0056】
TDIクライアントドライバ部20は、送信バッファに入った送信画像データをプロトコルドライバ22に送信する(S119)。データ処理部と同様にAPインターフェース部へデータの転送状況などの情報を作成することが可能である(S120〜121)。作成された情報はAPインターフェース部17に渡すこともできる(S122)。TDIクライアントドライバ部20は、パケット送信完了の情報をAPインターフェース部17に送信する(S123)。
【0057】
最後にAPインターフェース部17は、アプリケーションプログラム4へパケット転送完了を通知し(S124)、アプリケーションプログラム4からの要求を監視し(S125)、指示がない場合は、画像データの取り込みが継続して行われる(S125→S108)。ストップ指示があるときは(S125)、その命令を各処理部17〜20に指示して、処理を終了させる(S126)。
【0058】
[バーコードデータURLアドレス変換システム]
次に、本発明の電子計算機のインターフェースドライバプログラムを、バーコードデータをURL(Universal Resource Locator)アドレスに変換してウェブブラウザでこのURLのホームページを閲覧するシステムに適用したときの実施の形態2を説明する。バーコードデータURLアドレス変換システム30の構成は、図6のようになっている。
【0059】
バーコードデータURLアドレス変換システム30は、Bar-code to URL Index Server(以下、インデックスサーバ)31と、このURLアドレスに対応するWeb Server(以下、サーバ)33と、バーコード読込用のユーザ端末32がインターネット34によって接続されている。各ユーザ端末32にはバーコードリーダ(Bar-code Reader)28が接続されている。インデックスサーバ31には、バーコードデータに対応するURLアドレス情報をあらかじめ登録したデータベース35が用意されている。
【0060】
インデックスサーバ31は、インターネット34から送られてきたバーコードデータを受け取り、そのバーコードデータに対応するURLアドレスをデータベース35から検索して返信するためのサーバである。サーバ33は、ウエブページを格納した通常のインターネット上のウエブサーバである。バーコードリーダ28は、カタログを始めとする印刷物などに印刷されているバーコードを読み取るための装置である。
【0061】
ユーザ端末32が、バーコードリーダ28で読み取ったバーコードデータを受け取り、データの暗号化処理を行った後、インターネット34上のインデックスサーバ31に送る。そして、ユーザ端末32がインデックスサーバ31から暗号化されたバーコードデータに対応するURLアドレスを受け取り、ウエブプラウザを起動させてURLアドレスに対応するウエブベージを表示する。ユーザ端末32は、デスクトップパソコン、ノートパソコンやPDA等の携帯型の端末機であってもかまわない。
【0062】
ユーザ端末32は、入力されたバーコード情報をインターネット34に送信し、それに対応するURLアドレス情報を受け取り、ウエブページを表示する機能を有するものであればどんな電子端末機であってもかまない。次に、本システムのユーザ端末32上の動作を、WindowsNT/2000のOSを例にとって、説明する。図7には、ユーザ端末32に動作する共通インターフェースドライバ7の概要を図示している。
【0063】
共通インターフェースドライバ7は、APインターフェース部17、データ取込部18、データ処理部19、TDIクライアントドライバ部20から構成される。データ取込部18は、USB/HIDドライバ25を経由、バーコードリーダ28からバーコードデータを取り込むためのものである。データ処理部19は、データ取込部18で取り込んだバーコードデータを処理し暗号化処理を行う。同時に、APインターフェース部17からのインデックスサーバ31の情報も受け取り、所定の長さで区切って転送データのパケットを作成する。
【0064】
TDIクライアントドライバ部20は、プロトコルドライバ22とのインターフェースを提供し、暗号化処理部からのパケット化されたデータをLANドライバ21に出力するためのものである。同時に、インデックスサーバ31から得たURLアドレス情報をAPインターフェース部17に渡す機能を有する。APインターフェース部17は、共通インターフェースドライバ7の窓口となって、アプリケーションプログラム4とのインターフェースを提供する。
【0065】
アプリケーションプログラム4からの命令を受け取り、命令を分析して、データ取込部18、データ処理部19、TDIクライアントドライバ部20に指示を出し、各部からの情報をアプリケーションプログラム4に提供する。詳しくは、APインターフェース部17はアプリケーションプログラム4からインデックスサーバ31の設定パラメータ等の命令を受け取り、バーコードデータに対応するURLアドレス情報をアプリケーションプログラム4に返す。
【0066】
アプリケーションプログラム4の指示によりデバイスドライバ5の開始と終了コマンドを発行する。また、デバイスドライバ5内の動作状況などの情報をアプリケーションプログラム4に返すなどの機能を有する。共通インターフェースドライバ7は、プロトコルドライバ22を通して、LAN経由でまたは直接にインターネット34へアクセス可能である。アプリケーションプログラム4は、ウェブブラウザなど他のアプリケーションプログラムの起動、終了、パラメータの受け渡しなどの制御が可能である。
【0067】
[バーコードデータURLアドレス変換システムの動作]
次に、共通インターフェースドライバの動作手順は図8を参照の上説明する。ユーザモード9で動作しているアプリケーションプログラム4が、バーコードリーダ28からバーコードデータを受け取り、インターネット34上のインデックスサーバ31に送信し、インデックスサーバ31からのURL情報を受け取り、ウェブブラウザを起動させこのURLアドレスのページを表示させる。まず、アプリケーションプログラム4は、送受信の命令を出力する(S150)。
【0068】
この命令は、Windowsで標準に提供されているインターフェースを介して出力される。共通インターフェースドライバ7のAPインターフェース部17は、アプリケーションプログラム4からの命令を受信する(S151)。命令には、インデックスサーバ31の設定パラメータ、ネットワークパラメータ及び動作開始コマンドなどが含まれている。そして、APインターフェース部17は動作開始コマンドをデータ取込部18に渡し(S152)、ネットワークパラメータをTDIクライアントドライバ部20に渡す(S153)。
【0069】
TDIクライアントドライバ部20は、NDISドライバ23への接続処理を行い(S154)、プロトコルドライバ22のネットワークパラメータの設定を行う(S155)。この作業で、インターネット34へのアクセスする準備が完了する。データ取込部18は、動作開始コマンドでデータ取込パラメータの設定を行い(S156)、USB/HIDドライバ25への接続処理を行い(S157)、バーコードリーダ28からのバーコードデータを取込みする準備が完了する。
【0070】
バーコードリーダ28からのバーコードデータはUSB/HID 下層ドライバ27、USB/HIDクラスドライバ26を通じて、データ取込部18の受信バッファに取り込まれる(S158)。そして、データ取込部18は受信バッファに入っているバーコードデータをデータ処理部19に渡す(S159)。データ取込部18は、アプリケーションプログラム4から情報提供の要求があったとき(S160)、バーコードデータを受け取った状況などのアプリケーションプログラム4へ出力する情報を作成する(S161)。
【0071】
この作成された情報をAPインターフェース部17に渡す(S162)。データ処理部19では、受け取ったバーコードデータを処理し、暗号化処理を行い(S163)、APインターフェース部17からのインデックスサーバ31の設定パラメータ等を受け取る(S164)。そして、暗号化されたバーコードデータとインデックスサーバ31の設定パラメータを結合し、所定の長さで区切ってパケットデータを作成する(S165)。作成されたパケットデータはTDIクライアントドライバ部20の送信バッファに送られる(S166)。
【0072】
データ取込部18と同様にアプリケーションプログラム4から情報提供の要求があったとき(S167)、データ処理部19でデータの処理状況などのアプリケーションプログラム4へ出力する情報を作成する(S168)、その情報をAPインターフェース部17に渡す(S169)。TDIクライアントドライバ部20は、送信バッファに入ったデータをプロトコルドライバ22に送信する(S170)。
【0073】
プロトコルドライバ22を通して、インデックスサーバ31から送られてきたURLアドレスが受信バッファに入る(S171)。アプリケーションプログラム4から情報提供の要求があるときは、受信状況の情報を作成し、APインターフェース部17に渡す(S172〜S174)。受信バッファのURLアドレス情報をAPインターフェース部17に送信する(S175)。APインターフェース部17は、URLアドレス情報も含めたアプリケーションプログラム4への情報を作成し、アプリケーションプログラム4へその情報を送信する(S176)。
【0074】
そして、APインターフェース部17はアプリケーションプログラム4からの要求を待つ。指示がない場合は、バーコードデータの取り込みが継続して行われる(S177→S158)。ストップ指示があるときは、その命令を各処理部に指示して、終了する(S178)。
【0075】
【発明の効果】
本発明によると、次の効果が奏される。
OSに含まれている各種のデバイスドライバを一つの共通のデバイスドライバで制御できる共通インターフェースドライバをデバイスドライバの中間に設けることで、デバイス間のデータの送受信を高速、安全に転送できるようになった。
【0076】
アプリケーションプログラムが動作するユーザモードとデバイスドライバが動作するカーネルモードとに切り替わる回数が減り、データ転送が高速になった。共通インターフェースドライバを設けることで、電子計算機に画像データを取り込みしてネットワークへ転送する処理速度が高速になった。
バーコード情報をはじめとする各種データをカーネルモードで扱うことで、情報データの秘密性が高まり、安全性が向上した。共通インターフェースドライバを設けることで、ドライバ開発の統一環境が提供できるようになり、開発時間の短縮、費用の削減ができるようになった。
【図面の簡単な説明】
【図1】図1は、本発明の実施の形態を示す概念面図である。
【図2】図2は、本発明の実施の形態の動作を示すフローチャートである。
【図3】図3は、ネットワーク画像処理システムの概念図である。
【図4】図4は、ネットワーク画像処理システムの共通インターフェースドライバの構成図である。
【図5】図5は、図4の共通インターフェースドライバの動作手順のフローチャートである。
【図6】図6は、バーコードデータURLアドレス変換システムの概念図である。
【図7】図7は、バーコードデータURLアドレス変換システムの共通インターフェースドライバの構成図である。
【図8】図8は、図7の共通インターフェースドライバの動作手順のフローチャートである。
【図9】図9は、Windowsのアーキテクチャを示す図である。
【図10】図10は、従来のOSとデバイスドライバの概念図である。
【図11】図11は、従来のデバイスドライバの動作手順を示すフローチャートである。
【符号の説明】
1…電子計算機
2…ハードウェア
3…OS
4…アプリケーションプログラム
5…デバイスドライバ
6…デバイス
7…共通インターフェースドライバ
8…カーネルモード
9…ユーザモード
10…ネットワーク画像処理システム
11…電子計算機
12…電子計算機
13…ネットワーク
14…ビデオカメラ
15…キャプチャーボード
16…LANボード
17…APインターフェース部
18…データ取込部
19…データ処理部
20…TDIクライアントドライバ部
21…LANドライバ
22…プロトコルドライバ
23…NDISドライバ
24…キャプチャーボードドライバ
25…USB/HIDドライバ
26…USB/HIDクラスドライバ
27…NDISドライバ
28…バーコードリーダ
30…アドレス変換システム
31…インデックスサーバ
32…ユーザ端末
33…サーバ
34…インターネット
35…データベース

Claims (12)

  1. 複数のデバイスが接続され、OSによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムにおいて、
    前記デバイスには前記デバイスを制御するためのデバイスドライバが存在し、
    前記デバイスは、第1デバイスと第2デバイスからなり、
    前記第1デバイスを制御する第1デバイスドライバが存在し、
    前記第2デバイスを制御する第2デバイスドライバが存在し、
    前記OSには、前記OSを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードがあり、
    前記電子計算機用インターフェースドライバプログラムは、前記電子計算機で動作するアプリケーションプログラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の送受信を行うための共通のインターフェース手段として前記電子計算機を機能させるプログラムであり、
    更に、前記電子計算機用インターフェースドライバプログラムは、前記カーネルモードで動作し、かつ、
    前記アプリケーションプログラムからの命令を受信し命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段、
    前記第1デバイスドライバから受信データを取り込むための第1インターフェース手段、
    前記第2デバイスドライバへ送信データの送信を行うための第2インターフェース手段、及び、
    前記受信データを処理して前記送信データを作成し、前記送信データを前記第2インターフェース手段に渡すためのデータ処理手段
    として前記電子計算機を機能させるプログラムである
    ことを特徴とする電子計算機のインターフェースドライバプログラム。
  2. 複数のデバイスが接続され、OSによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムにおいて、
    前記OSは、前記OSを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードを備え、
    前記OSは、前記複数のデバイスをそれぞれ制御するための複数のデバイスドライバを備え、
    前記電子計算機用インターフェースドライバプログラムは、
    前記複数のデバイスドライバからなるデバイスドライバ層と、前記OSがカーネルモードで提供する基本プログラムとの間に位置し、前記カーネルモードで動作し、
    かつ、(I)前記デバイスドライバの共通の窓口となるとともに、前記基本プログラムを通して行われる、前記デバイスドライバと前記アプリケーションプログラムとのやり取りをまとめて行ない、(II)前記アプリケーションプログラムから要求されたときに、前記複数のデバイスの間、又は、前記アプリケーションプログラムと前記デバイスの間のデータの送受信を行ない、(III)前記アプリケーションプログラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記OSが標準で備えているインターフェースを通して、前記アプリケーションプログラムから出された前記命令を受信して、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の送受信、又は、前記デバイス間のデータのやりとりを経由する共通インターフェース手段として前記電子計算機を機能させるプログラムであり、
    前記電子計算機用インターフェースドライバプログラムは、
    前記アプリケーションプログラムからの命令を受信し、命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段、
    前記デバイスの内の第1デバイスを制御するための第1デバイスドライバから受信データを取り込むための第1インターフェース手段、
    前記デバイスの内の第2デバイスを制御するための第2デバイスドライバへ送信データの送信を行うための第2インターフェース手段、及び、
    前記受信データを処理して前記送信データを作成し、前記送信データを前記第2インターフェース手段に渡すためのデータ処理手段
    として前記電子計算機を機能させるプログラムである
    ことを特徴とする電子計算機のインターフェースドライバプログラム。
  3. 請求項1又は2に記載の電子計算機のインターフェースドライバプログラムであって、
    前記第1デバイスは、画像データを取込むための画像装置(15)であり、
    前記第2デバイスは、ネットワーク(13)に接続し前記画像データを前記ネットワーク(13)に送信するためのネットワークカード(16)であり、
    前記第1インターフェース手段(18)は、前記画像装置(15)からの前記画像データを取り込み、
    前記データ処理手段(19)は、前記第1インターフェース手段(18)から送信された前記画像データを処理し、前記ネットワーク(13)に送信するための送信画像データを作成し、
    前記第2インターフェース手段(20)は、前記データ処理手段(19)からの前記送信画像データを前記ネットワーク(13)に送信する
    ことを特徴とする電子計算機のインターフェースドライバプログラム。
  4. 請求項1又は2に記載の電子計算機のインターフェースドライバプログラムであって、
    前記第1デバイスは、バーコードデータを読み取るためのバーコード読取装置(28)であり、
    前記第2デバイスは、ネットワーク(34)に接続し前記バーコードデータを前記ネットワーク(34)に送信するためのネットワークカード(16)であり、
    前記第1インターフェース手段(18)は、前記バーコード読取装置(28)からの前記バーコードデータを取り込み、
    前記データ処理手段(19)は、前記第1インターフェース手段(18)から送信された前記バーコードデータを処理し、暗号化して、前記ネットワーク(34)に送信するための送信バーコードデータを作成し、
    前記第2インターフェース手段(20)は、前記データ処理手段(19)からの前記送信バーコードデータを前記ネットワーク(34)に送信する
    ことを特徴とする電子計算機のインターフェースドライバプログラム。
  5. 請求項4に記載の電子計算機のインターフェースドライバプログラムであって、
    前記ネットワーク(34)に接続され、前記バーコードデータをURLアドレスデータに変換する機能を備えているインデックスサーバ(31)から、前記第2インターフェース手段(20)が、前記ネットワークカード(16)経由で、前記URLアドレスデータを取得して、
    前記アプリケーションインターフェース手段(17)は、前記URLアドレスデータを前記アプリケーションプログラム(4)に渡す
    ことを特徴とする電子計算機のインターフェースドライバプログラム。
  6. 請求項3ないし5から選択される1項に記載の電子計算機のインターフェースドライバプログラムであって、
    前記ネットワーク(13,34)はインターネットである
    ことを特徴とする電子計算機のインターフェースドライバプログラム。
  7. 複数のデバイスが接続され、OSによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムを記録した記録媒体において、
    前記デバイスには前記デバイスを制御するためのデバイスドライバが存在し、
    前記デバイスは、第1デバイスと第2デバイスからなり、
    前記第1デバイスを制御する第1デバイスドライバが存在し、
    前記第2デバイスを制御する第2デバイスドライバが存在し、
    前記OSには、前記OSを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードがあり、
    前記電子計算機用インターフェースドライバプログラムは、前記電子計算機で動作するアプリケーションプログラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の送受信を行うための共通のインターフェース手段として前記電子計算機を機能させるプログラムであり、
    更に、前記電子計算機のインターフェースドライバプログラムは、前記カーネルモードで動作し、かつ、
    前記アプリケーションプログラムからの命令を受信し命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段、
    前記第1デバイスドライバから受信データを取り込むための第1インターフェース手段、
    前記第2デバイスドライバへ送信データの送信を行うための第2インターフェース手段、及び、
    前記受信データを処理して前記送信データを作成し、前記送信データを前記第2インターフェース手段に渡すためのデータ処理手段
    として前記電子計算機を機能させるプログラムである
    ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
  8. 複数のデバイスが接続され、OSによって制御されている電子計算機の前記複数のデバイスの間にデータを送受信するとき、前記送受信を制御する手段として前記電子計算機を機能させる電子計算機用インターフェースドライバプログラムを記録した記録媒体において、
    前記OSは、前記OSを操作するための全命令が実行できるカーネルモード及び前記全命令の一部しか実行できないユーザモードの動作モードを備え、
    前記OSは、前記複数のデバイスをそれぞれ制御するための複数のデバイスドライバを備え、
    前記電子計算機用インターフェースドライバプログラムは、
    前記複数のデバイスドライバからなるデバイスドライバ層と、前記OSがカーネルモードで提供する基本プログラムとの間に位置し、前記カーネルモードで動作し、
    かつ、(I)前記デバイスドライバの共通の窓口となるとともに、前記基本プログラムを通して行われる、前記デバイスドライバと前記アプリケーションプログラムとのやり取りをまとめて行ない、(II)前記アプリケーションプログラムから要求されたときに、前記複数のデバイスの間、又は、前記アプリケーションプログラムと前記デバイスの間のデータの送受信を行ない、(III)前記アプリケーションプログラムから出される命令によって前記デバイス間にデータの送受信を行うとき、前記OSが標準で備えているインターフェースを通して、前記アプリケーションプログラムから出された前記命令を受信して、前記アプリケーションプログラムから前記デバイスドライバへのデータ又は命令の送受信、又は、前記デバイス間のデータのやりとりを経由する共通インターフェース手段として前記電子計算機を機能させるプログラムであり、
    前記電子計算機用インターフェースドライバプログラムは、
    前記アプリケーションプログラムからの命令を受信し、命令実行結果を前記アプリケーションプログラムに通知するためのアプリケーションインターフェース手段、
    前記デバイスの内の第1デバイスを制御するための第1デバイスドライバから受信データを取り込むための第1インターフェース手段、
    前記デバイスの内の第2デバイスを制御するための第2デバイスドライバへ送信データの送信を行うための第2インターフェース手段、及び、
    前記受信データを処理して前記送信データを作成し、前記送信データを前記第2インターフェース手段に渡すためのデータ処理手段
    として前記電子計算機を機能させるプログラムである
    ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
  9. 請求項7又は8に記載の電子計算機のインターフェースドライバプログラムを記録した記録媒体であって、
    前記第1デバイスは、画像データを取込むための画像装置(15)であり、
    前記第2デバイスは、ネットワーク(13)に接続し前記画像データを前記ネットワーク(13)に送信するためのネットワークカード(16)であり、
    前記第1インターフェース手段(18)は、前記画像装置(15)からの前記画像データを取り込み、
    前記データ処理手段(19)は、前記第1インターフェース手段(18)から送信された前記画像データを処理し、前記ネットワーク(13)に送信するための送信画像データを作成し、
    前記第2インターフェース手段(20)は、前記データ処理手段(19)からの前記送信画像データを前記ネットワーク(13)に送信する
    ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
  10. 請求項7又は8に記載の電子計算機のインターフェースドライバプログラムを記録した記録媒体であって、
    前記第1デバイスは、バーコードデータを読み取るためのバーコード読取装置(28)であり、
    前記第2デバイスは、ネットワーク(34)に接続し前記バーコードデータを前記ネットワーク(34)に送信するためのネットワークカード(16)であり、
    前記第1インターフェース手段(18)は、前記バーコード読取装置(28)からの前記バーコードデータを取り込み、
    前記データ処理手段(19)は、前記第1インターフェース手段(18)から送信された前記バーコードデータを処理し、暗号化して、前記ネットワーク(34)に送信するための送信バーコードデータを作成し、
    前記第2インターフェース手段(20)は、前記データ処理手段(19)からの前記送信バーコードデータを前記ネットワーク(34)に送信する
    ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
  11. 請求項10に記載の電子計算機のインターフェースドライバプログラムを記録した記録媒体であって、
    前記ネットワーク(34)に接続され、前記バーコードデータをURLアドレスデータに変換する機能を備えているインデックスサーバ(31)から、前記第2インターフェース手段(20)が、前記ネットワークカード(16)経由で、前記URLアドレスデータを取得して、
    前記アプリケーションインターフェース手段(17)は、前記URLアドレスデータを前記アプリケーションプログラム(4)に渡す
    ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
  12. 請求項9ないし11から選択される1項に記載の電子計算機のインターフェースドライバプログラムを記録した記録媒体であって、
    前記ネットワーク(13,34)はインターネットである
    ことを特徴とする電子計算機のインターフェースドライバプログラムを記録した記録媒体。
JP2001136135A 2001-05-07 2001-05-07 電子計算機のインターフェースドライバプログラム及びその記録媒体 Expired - Lifetime JP5055492B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2001136135A JP5055492B2 (ja) 2001-05-07 2001-05-07 電子計算機のインターフェースドライバプログラム及びその記録媒体
US10/332,539 US7395541B2 (en) 2001-05-07 2002-04-30 Computer interface driver program
KR1020037000099A KR100554115B1 (ko) 2001-05-07 2002-04-30 컴퓨터용 인터페이스 드라이버 프로그램을 내재한 컴퓨터와 디바이스 드라이버 장치 및 프로그램을 기록한 기록매체
CNB028015622A CN1318987C (zh) 2001-05-07 2002-04-30 电子计算机用接口驱动器***
PCT/JP2002/004318 WO2002091195A1 (fr) 2001-05-07 2002-04-30 Programme pilote d'interface ordinateur
EP02722899A EP1387282A4 (en) 2001-05-07 2002-04-30 COMPUTER INTERFACE DRIVER PROGRAM
EP09005728.2A EP2090979B1 (en) 2001-05-07 2002-04-30 Interface driver program for computer and recording medium therefor
US12/003,891 US7730497B2 (en) 2001-05-07 2008-01-03 Interface driver program for computer and recording medium therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001136135A JP5055492B2 (ja) 2001-05-07 2001-05-07 電子計算機のインターフェースドライバプログラム及びその記録媒体

Publications (2)

Publication Number Publication Date
JP2002328878A JP2002328878A (ja) 2002-11-15
JP5055492B2 true JP5055492B2 (ja) 2012-10-24

Family

ID=18983478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001136135A Expired - Lifetime JP5055492B2 (ja) 2001-05-07 2001-05-07 電子計算機のインターフェースドライバプログラム及びその記録媒体

Country Status (6)

Country Link
US (2) US7395541B2 (ja)
EP (2) EP1387282A4 (ja)
JP (1) JP5055492B2 (ja)
KR (1) KR100554115B1 (ja)
CN (1) CN1318987C (ja)
WO (1) WO2002091195A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10302427B4 (de) * 2003-01-22 2005-04-07 Fujitsu Siemens Computers Gmbh Verfahren zum Betreiben eines Datenverarbeitungssystems mit einer Sicherheitseinrichtung
JP4198154B2 (ja) * 2003-02-26 2008-12-17 サイエンスパーク株式会社 印刷制御用プログラムを格納した電子計算機、そのプログラム及びプログラム記録媒体
WO2005067394A2 (en) * 2003-08-14 2005-07-28 Vaman Technologies (R & D) Limited Enhancing security of odbc/oledb/jdbc driver interface
US20060080517A1 (en) * 2003-11-14 2006-04-13 Brown Christopher L T Accessing a protected area of a storage device
US7392527B2 (en) * 2003-12-10 2008-06-24 Microsoft Corporation Driver-specific context for kernel-mode shimming
JP2005275643A (ja) * 2004-03-24 2005-10-06 Hitachi Ltd コンテンツデータ処理装置及び方法
US20050257226A1 (en) * 2004-05-14 2005-11-17 Microsoft Corporation PnP functionality for unsupported devices
US7506343B2 (en) * 2004-08-19 2009-03-17 International Business Machines Corporation System and method for passing information from one device driver to another
US8239883B2 (en) 2005-03-29 2012-08-07 Canon Kabushiki Kaisha Information processing apparatus and method, program, and storage medium
JP4911530B2 (ja) * 2005-05-31 2012-04-04 サイエンスパーク株式会社 監視システム、システム用のプログラム、及びプログラムを記録した記録媒体
US20070162350A1 (en) * 2005-11-23 2007-07-12 Friedman Paul R Method and apparatus for retrieving remote data based on local indicia
WO2008001823A1 (fr) * 2006-06-27 2008-01-03 Science Park Corporation procédé de gestion de données informatiques, programme et support d'enregistrement
JP2008107940A (ja) * 2006-10-24 2008-05-08 Sony Corp 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
US20090064196A1 (en) * 2007-08-31 2009-03-05 Microsoft Corporation Model based device driver code generation
US8688744B2 (en) * 2008-09-09 2014-04-01 Applied Systems, Inc. Method, system, and apparatus for scanning and importing documents
US9613049B2 (en) 2008-09-09 2017-04-04 Applied Systems, Inc. Document integration and distribution system, method and device
US8725916B2 (en) * 2012-01-07 2014-05-13 Microsoft Corporation Host side implementation for HID I2C data bus
JP2015095067A (ja) * 2013-11-12 2015-05-18 株式会社東芝 データ伝送装置、データ伝送方法およびプログラム
JP2015156186A (ja) * 2014-02-21 2015-08-27 ソニー株式会社 電子機器、および連係動作方法
JP6349783B2 (ja) 2014-02-28 2018-07-04 富士通株式会社 端末装置、サーバ装置、デバイスドライバプログラム及び外部周辺機器制御方法
US9952853B2 (en) * 2015-02-10 2018-04-24 Mediatek Inc. Methods for cross-mounting devices and apparatus utilizing the same
US10831394B2 (en) * 2018-08-27 2020-11-10 International Business Machines Corporation Live upgrade of storage device driver using shim application
CN109637268A (zh) * 2018-12-29 2019-04-16 无锡吾成互联科技有限公司 一种音乐教学app操作方法及其实现***
CN113302598B (zh) 2019-01-09 2023-11-07 科学园株式会社 电子数据管理装置、电子数据管理***、其所用的方法
CN113747087B (zh) * 2021-09-10 2023-09-19 湖南君瀚信息技术有限公司 远程驾驶低延时图像传输方法、装置、计算机设备及介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5915131A (en) * 1995-05-05 1999-06-22 Apple Computer, Inc. Method and apparatus for handling I/O requests utilizing separate programming interfaces to access separate I/O services
JPH09164770A (ja) 1995-12-18 1997-06-24 Ricoh Co Ltd 感熱記録材料
US6205492B1 (en) * 1997-04-04 2001-03-20 Microsoft Corporation Method and computer program product for interconnecting software drivers in kernel mode
AU7121698A (en) 1997-04-15 1998-11-11 Microsoft Corporation File system primitive allowing reprocessing of i/o requests by multiple drivers in a layered driver i/o system
JP2000057079A (ja) 1998-08-10 2000-02-25 Yoshihiko Matsumoto インタネット・アクセス・システム
US6598169B1 (en) * 1999-07-26 2003-07-22 Microsoft Corporation System and method for accessing information made available by a kernel mode driver
JP2001069160A (ja) * 1999-08-31 2001-03-16 Ricoh Co Ltd ネットワーク設定システム、インターフェース装置、設定装置およびネットワーク設定方法
JP2001249840A (ja) * 2000-03-06 2001-09-14 Shizuo Ichikawa バーコードによるインターネットアドレッシング
US6952830B2 (en) * 2001-08-16 2005-10-04 Occam Networks, Inc. System and method to uniformly access devices

Also Published As

Publication number Publication date
EP2090979B1 (en) 2016-03-16
EP1387282A4 (en) 2008-05-28
US20040216141A1 (en) 2004-10-28
CN1462395A (zh) 2003-12-17
KR100554115B1 (ko) 2006-02-20
US7395541B2 (en) 2008-07-01
US7730497B2 (en) 2010-06-01
EP1387282A1 (en) 2004-02-04
CN1318987C (zh) 2007-05-30
WO2002091195A1 (fr) 2002-11-14
US20080134216A1 (en) 2008-06-05
KR20030024772A (ko) 2003-03-26
WO2002091195B1 (fr) 2003-02-06
JP2002328878A (ja) 2002-11-15
EP2090979A1 (en) 2009-08-19

Similar Documents

Publication Publication Date Title
JP5055492B2 (ja) 電子計算機のインターフェースドライバプログラム及びその記録媒体
US9253192B1 (en) Pluggable login architecture and dynamic resource recognition
US7673020B2 (en) System and method for facilitating communication between a computing device and multiple categories of media devices
CN1870642B (zh) 用于通过使用数据通信协议在网络计算环境内通信的方法
JP4380032B2 (ja) 情報処理システム及び情報処理方法、並びに記憶媒体
US8413139B2 (en) Programming model for application and data access and synchronization within virtual environments
RU2388039C2 (ru) Облегченный протокол ввода/вывода
US7496492B2 (en) Software-aided storage device emulation in a physical storage device
JP2020521209A (ja) プラグイン関数プラットフォームおよび方法
US20140040778A1 (en) System and Method for Displaying and Operating Multiple Layered Item List In Web Browser With Support of Concurrent Users
JP2008539484A (ja) ユニバーサル・シリアル・バス機能のデリゲーション
US20030135587A1 (en) Method and system of state management for data communications
WO2014034001A1 (ja) Webコンテンツ先読み制御装置、Webコンテンツ先読み制御プログラム、及びWebコンテンツ先読み制御方法
US20040093607A1 (en) System providing operating system independent access to data storage devices
CN109189652A (zh) 一种封闭网络终端行为数据的采集方法及***
WO2023246486A1 (zh) 一种创建连接器的方法及装置
JP4246405B2 (ja) 秘密機構を使用して各ハードウェア・レジスタに一括アクセスするハードウェア装置上で付加価値特性を使用可能にする方法
JP3993342B2 (ja) 電子計算機における処理の中断/再開方法
CN103838586A (zh) 文件开启的***及方法
JP2007179119A (ja) 計算機システム
US20240232106A1 (en) Merged input/output for accelerating directory listing phase in client drive redirection
JP4866511B2 (ja) ネットワークを介したマスタデータの利用方法
US7266596B2 (en) Dynamic storage space linking
JP3652944B2 (ja) 周辺装置管理システム,周辺装置管理方法および記録媒体
JP2004102821A (ja) 文書のデータ構造、記憶媒体、データ処理装置及び文書閲覧システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090914

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100302

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100312

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100409

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120608

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5055492

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term