JP5294892B2 - 画像形成装置、装置、制御方法、及びプログラム - Google Patents

画像形成装置、装置、制御方法、及びプログラム Download PDF

Info

Publication number
JP5294892B2
JP5294892B2 JP2009006119A JP2009006119A JP5294892B2 JP 5294892 B2 JP5294892 B2 JP 5294892B2 JP 2009006119 A JP2009006119 A JP 2009006119A JP 2009006119 A JP2009006119 A JP 2009006119A JP 5294892 B2 JP5294892 B2 JP 5294892B2
Authority
JP
Japan
Prior art keywords
driver
common
device driver
peripheral device
controlling
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.)
Active
Application number
JP2009006119A
Other languages
English (en)
Other versions
JP2010165128A (ja
JP2010165128A5 (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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009006119A priority Critical patent/JP5294892B2/ja
Priority to US12/647,611 priority patent/US8139980B2/en
Publication of JP2010165128A publication Critical patent/JP2010165128A/ja
Priority to US13/365,499 priority patent/US8351821B2/en
Publication of JP2010165128A5 publication Critical patent/JP2010165128A5/ja
Application granted granted Critical
Publication of JP5294892B2 publication Critical patent/JP5294892B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03GELECTROGRAPHY; ELECTROPHOTOGRAPHY; MAGNETOGRAPHY
    • G03G15/00Apparatus for electrographic processes using a charge pattern
    • G03G15/50Machine control of apparatus for electrographic processes using a charge pattern, e.g. regulating differents parts of the machine, multimode copiers, microprocessor control
    • G03G15/5075Remote control machines, e.g. by a host
    • G03G15/5083Remote control machines, e.g. by a host for scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

本発明は、周辺装置をアプリケーションによって制御する画像形成装置及び制御方法及びプログラムに関する。特に複数のアプリケーションが共通のデバイスドライバを利用して周辺装置を制御する画像形成装置に関する。
多機能化された複合機は、様々な機能を有する。その1つの機能として、ユーザが複合機を購入した後で、好きなアプリケーションをインストールする仕組みが存在する。この仕組みは、ユーザの環境に合わせて複合機の機能をカスタマイズする目的で利用されることが多い。これらのアプリケーションは、USBデバイスのような外付け装置の機能を利用する場合がある。この場合、USBデバイスの振る舞いを制御するいくつかの種類のデバイスドライバが存在する。ここでその種類を説明する。但し、これらの用語は、一般に広く知られているものではない。
1つは、汎用クラスドライバである。ここでのクラスとは、USBデバイスが提供する機能によってグループ分けされたカテゴリのことである。汎用クラスとは、その中で後述するベンダ固有クラスを除いたクラスのことを指している。汎用クラスドライバとは、汎用クラスに属するUSBデバイスの振る舞いを制御するためのデバイスドライバを示す。この汎用クラスドライバが存在するため、USBデバイスを開発するベンダはデバイスドライバの開発効率が良くなるというメリットがある。これに対し、該当する汎用クラスに定義されていない機能を提供したい場合には、ベンダが独自に機能を提供するためのデバイスドライバを開発する必要がある。汎用クラスドライバの具体的な例として、HIDクラスドライバ、Mass Storageクラスドライバなどが挙げられる。一般的には、Windows(登録商標)やLinuxなどのOSが提供する。
もう1つは、ベンダ固有ドライバである。ベンダとは、USBデバイスを開発する開発元のことを指す。ベンダ固有のドライバとは、前述の汎用クラスに属さないUSBデバイスの振る舞いを制御するための、ベンダが独自に開発した専用のデバイスドライバを示す。ベンダが提供する機能に対して自由に振る舞いの定義が可能な反面、OSのバージョンが変わるとデバイスドライバもそれに合わせて再作成が必要となるといった欠点もある。
最後は、共通デバイスドライバである。共通デバイスドライバは、Windows(登録商標)やLinuxなどの一般的なOSには存在しない概念であり、前述のアプリケーションがUSBデバイスの振る舞いを自由に制御するためのデバイスドライバである。前述のベンダ固有ドライバとは異なり、USBデバイスの振る舞いを制御するロジックをデバイスドライバではなくアプリケーションに持つ。性能ではベンダ固有ドライバに劣るものの、OSのバージョンに依存しないスケーラビリティを持つことができる。
続いて、これらのデバイスドライバの中から、適切なデバイスドライバを選択する際の簡単な流れを説明する。なお、あるUSBデバイスに対応してデバイスドライバを選択し、その制御を任せることを、デバイスドライバをロードすると表現する。あるUSBドライバが情報機器に接続された場合に、OSが適切なデバイスドライバを探索する。汎用クラスドライバとベンダ固有ドライバは、自らがサポートするUSBデバイスを識別するための識別子をOSに登録している。従って、OSは接続されたデバイスの識別子に対応するドライバを選択し、ロードする。これに対し、共通デバイスドライバは自らがサポートするデバイスを特定できないため、何の情報もOSに登録しない。OSはUSBドライバの接続を検知すると、ベンダ固有ドライバ、汎用クラスドライバの順に該当するデバイスドライバがあるかチェックする。
一般的なOSの代表であるWindows(登録商標)では、共通デバイスドライバを備えていない。そのため、登録された汎用クラスドライバもしくはベンダ固有ドライバの中から該当するデバイスドライバが見つからない場合には、適切なデバイスドライバを新たにインストールするためのウィザード画面を表示する仕様となっている。また、Linuxも同様に共通デバイスドライバを備えないため、登録された汎用クラスドライバもしくはベンダ固有ドライバの中から該当するデバイスドライバが見つからない場合には、デバイスドライバが何も選択されない仕組みになっている。
共通デバイスドライバを備えるプラットフォームの例としては、Java(登録商標)を用いて実装された複合機専用アプリケーションプラットフォームがある。このプラットフォームにおいては、インストールされたデバイスに該当するデバイスドライバが見つからない場合には、必ず共通デバイスドライバがロードされる仕組みになっている。
デバイスドライバ選択の従来技術として、特許文献1がある。特許文献1では、デバイスドライバとデバイス識別子の関係を記述したデバイスドライバ登録情報を持ち、この情報に従ってデバイスに対してデバイスドライバを選択するディスパッチデバイスドライバを備える。特許文献1によれば、デバイスドライバ登録情報への新規ドライバ追加や、関係の変更が可能である。
特開平10−27149号公報
前述の共通デバイスドライバを介してUSBデバイスを制御するアプリケーションが、汎用クラスのデバイスに対して特殊な制御を行いたいケースがある。例えば、HIDクラスで実装された磁気カードリーダを認証用デバイスとして利用したい場合に、他のアプリケーションに通信内容が通知されないようにしたい、などの要望が具体的な例として挙げられる。別の例として、Mass Storageクラスで実装されたメモリデバイスに特別な暗号化領域を設けたい場合が考えられる。これらの要望に対してベンダ固有ドライバを新規に実装する案が考えられる。しかし、ベンダ固有ドライバの実装はOSのカーネルへの依存性が高く、可搬性に乏しい。また、ベンダ固有ドライバはカーネルモードで動作することになるため、当該ドライバを入れ替え可能な手段を提供することは装置の利用に伴うセキュリティレベルを低下させる危険性をはらむこととなる。こういった理由により、ベンダ固有ドライバの利用が現実的には解決策となりえない事情がある。
こういった要望を満たすためには、共通デバイスドライバが選択され、利用されることが望ましい。しかし、前述のデバイスドライバ選択のロジックによれば、共通デバイスドライバよりも優先度の高い汎用クラスドライバが新規にインストールされたデバイスに対応するものとして登録されていると、それが優先的に選択され、ロードされてしまうため、アプリケーションで制御することができない。このような問題に対し、単純な解決方法として、汎用クラスドライバを無効化するスイッチを用意する方法が考えられる。しかし、この方法を用いると、他の汎用クラスのUSBデバイスを利用できなくなるため、望ましい解決方法ではない。
別の解決方法として、共通デバイスドライバをベンダ固有ドライバとして登録する構成も考えられる。しかし、アプリケーションが制御するUSBデバイスの情報が共通デバイスドライバからは不明であるため、共通デバイスドライバはOSに自らがサポートするUSBデバイスを識別するための識別子を登録することができない。更に、Linux OSにおいては、その仕様として、1つのデバイスドライバを、2つ以上の異なる優先度でOSに登録できないという制約がある。そのため、共通デバイスドライバをベンダ固有ドライバとして登録すると、該当するデバイスドライバが登録されていない他のUSBデバイスに対して、共通デバイスドライバを選択するための登録ができなくなる。その結果、他のアプリケーションがUSBデバイスを制御できない問題がある。
以上述べてきたように、共通デバイスドライバを介してUSBデバイスを制御するアプリケーションが、汎用クラスのデバイスに対して特殊な制御を行いたいケースを考慮して、共通デバイスドライバを優先的に選択させることが可能な仕組みが求められている。
前述の課題を解決するために、本発明は以下の構成を有する。すなわち、登録されたドライバの情報を管理し、登録されたドライバをロードするオペレーティングシステムと、周辺装置の動作を制御するための汎用クラスドライバと、周辺装置の動作を制御するロジックを有するアプリケーションが当該周辺装置を制御する際に利用する共通デバイスドライバと、を有する画像形成装置であって、前記アプリケーションが制御を行う周辺装置の識別情報を前記共通デバイスドライバに付与する付与手段と、周辺装置が前記画像形成装置に接続された際に当該周辺装置を制御するために利用する共通デバイスドライバであって当該周辺装置の識別情報が付与された共通デバイスドライバが当該周辺装置を制御するための汎用クラスドライバよりも優先的に利用されるように、前記オペレーティングシステムに対しドライバの情報を登録する登録手段とを有する
本発明によれば、前述の共通デバイスドライバを介してUSBデバイスを制御するアプリケーションが、所望するUSBデバイスを予め指定しておくことにより制御できるようになる。同時に、特定のUSBデバイスが所望するデバイスドライバがOS内に存在しない場合に、従来通り共通デバイスドライバがロードされ、アプリケーションから制御できる。
<実施形態1>
以下、本発明を実施するための最良の形態について図面を用いて説明する。本発明を実施するための第一の実施形態について説明する。図1は、本発明における画像形成装置のハードウェア構成の一例を示す図である。本発明が適用可能な装置として、画像形成装置101を示す。CPU110は、プログラムの実行や、様々な処理の制御を行う。不揮発性メモリ111は、ROMから構成され、画像形成装置101の起動処理において初期段階に必要なプログラムやデータが格納されている。揮発性メモリ112は、RAMから構成され、プログラム、データの一時的な格納場所として利用される。補助記憶装置113は、ハードディスクやRAMドライブ等の大容量記憶装置から構成され、大容量データの保管、プログラムの実行コードの保持を行う。揮発性メモリ112と比較して、長時間保持する必要があるデータを記憶する。本実施形態においては、各ソフトウェアを保持する。ディスプレイ114は、画像形成装置101を利用するユーザに情報を表示して伝えるための装置である。なお、ここでのユーザとは、全て画像形成装置101の利用者を示すものとする。入力装置115は、ユーザの選択指示を受付け、内部バス120を介してプログラムに伝達するための装置である。USBホストコントローラ116は、後述するUSBケーブル130を介してUSBデバイス140と通信・制御を行うための装置である。内部バス120は、CPU110、不揮発性メモリ111、揮発性メモリ112、補助記憶装置113、ディスプレイ114、入力装置115、USBホストコントローラ116を画像形成装置101内で通信可能な状態に接続する通信バスである。USBケーブル130は、USBホストコントローラ116と後述するUSBデバイス140を物理的につなぎ通信を可能とするためのケーブルである。USBデバイス140は、画像形成装置101と通信を行い、特定の機能を提供するための外付け装置である。例として、キーボードやマウス、ストレージ装置、磁気カード読取装置、ICカード読取装置、生体認証装置などが挙げられるが、これらに限定されるわけではなく、USBケーブル130にて接続される機器が該当する。
図2は、本発明の実施形態を説明するためのソフトウェア構成図である。図2に登場する各手段は、不揮発性メモリ111、揮発性メモリ112、補助記憶装置113のいずれかの記憶手段に記憶され、CPU110により実行される。アプリケーション201は、USBデバイス140を制御するためのソフトウェアである。後述する共通インタフェース213を介して制御を行う。アプリケーション202は、USBデバイス140を制御するためのソフトウェアである。後述する汎用クラスドライバ216を介して制御を行う。アプリケーション203は、USBデバイス140を制御するためのソフトウェアである。後述するベンダ固有ドライバ217を介して制御を行う。上述したアプリケーション201、202、203は、それぞれ違う経路でUSBデバイス140を制御するため、3つに区分して説明している。なお、アプリケーション201、202、203に共通の特徴を説明する場合には、単純にアプリケーションと表記する。インストーラ211は、アプリケーションを画像形成装置101にインストールもしくはアンインストールするための手段である。インストールもしくはアンインストールする際に、インストーラ211は各アプリケーションが有する特徴を示す設定ファイルをチェックする。
設定ファイルの具体的な例を図7に示す。設定ファイル701には、複数の項目を記述することができる。図7で示した例においては、“Bundle−Vendor”、“Bundle−Version”、“Bundle−Activator”、“Bundle−Name”、“Application−Id”、“ReservedUSBDevices”の6項目が記述されている。“Bundle−Vendor”は、アプリケーションの開発元の情報を示す。“Bundle−Version”は、アプリケーションのバージョンを示す。“Bundle−Activator”は、アプリケーションの起動クラスを示す。“Bundle−Name”は、アプリケーションの名称を示す。“Application−Id”は、アプリケーション識別子を示す。異なるアプリケーションは、必ず異なる“Application−Id”を有する。最後に、“ReservedUSBDevices”は、アプリケーションが制御するUSBデバイスを識別するための情報を示す。USBデバイスを一意に識別可能とするための情報として、2つの識別子の組み合わせを用いている。すなわち、USBデバイスの開発ベンダを示す2バイトの数字と、USBデバイスのプロダクト識別子を示す2バイトの数字の組み合わせである。ここで、USBデバイスの開発ベンダを示す2バイトの数字とは、USBデバイスが備えるDevice Descriptorの“idVendor”フィールドの値を指している。同様に、USBデバイスのプロダクト識別子を示す2バイトの数字とは、USBデバイスが備えるDevice Descriptorの“idProduct”フィールドの値を指している。図7の例では、0x04A9、0x2680、0x04A9、0x2681、0x04A9、0x2682という3つのUSBデバイスを定義している。つまり、0x04A9のベンダ識別子を有するベンダが開発したUSBデバイス(0x2680、0x2681、0x2682)が定義されている。
インストーラ211は、設定ファイルの“Application−Id”に記載された“ReservedUSBDevices”に宣言された識別子を読み取り、前述の共通デバイスドライバ管理212に通知する。インストールする際は、通知した情報を後述する対象デバイスリストに追加するよう依頼する。アンインストールする際は、通知した情報を対象デバイスリストから削除するよう依頼する。共通デバイスドライバ管理212は、前述のインストーラ211から通知された情報を、後述する対象デバイスリスト221のファイルに更新する手段である。ここで対象デバイスリスト221の例を図6に示す。対象デバイスリスト221は、ファイルシステム上のファイルとして構成され、図6に示すような複数のフィールドを持つレコードの集合として実現される。アプリケーションID601は、アプリケーションを一意に識別する識別子を示す。図7で説明した“Application−Id”に相当する。USBデバイスベンダID602は、USBデバイスを製造したベンダを一意に識別する識別子を示す。図7で説明したReservedUSBDevicesの前の識別子2バイトに相当する。USBデバイスプロダクトID603は、USBデバイスの製品をベンダの中で一意に識別する識別子を示す。図7で説明した“ReservedUSBDevices”の後の識別子2バイトに相当する。デバイスドライバ識別子604は、アプリケーションがUSBデバイスを制御するためにロードされるデバイスドライバを一意に識別する識別子を示す。タイムスタンプ605は、情報が登録された日時を特定する情報を示す。前記共通デバイスドライバ管理212は、情報を登録する際は同じ情報がないかチェックする。同じ情報であるか否かは、アプリケーションID601、USBデバイスベンダID602、USBデバイスプロダクトID603、デバイスドライバ識別子604が全て合致するか否かで判定する。まったく同じ情報が既に登録されていた場合は、情報を登録せずに処理を終了する。同じ情報が登録されていなかった場合は、対象デバイスリストの末尾に情報を追加する。本実施形態においては、2種類のアプリケーションから同じUSBデバイスに対して情報を登録した場合、別々に対象デバイスリスト221に情報を追加する。これは、片方のアプリケーションがアンインストールされた場合に、もう片方のアプリケーションがUSBデバイスを制御できなくなることを防止するためである。また、共通デバイスドライバ管理212は、情報を削除する際は指定された情報がないかチェックする。同じ情報であるか否かは、情報を登録する際と同じ方法で判定する。指定された情報が既に登録されていた場合は、情報を削除する。指定された情報が登録されていなかった場合は、何もせず処理を終了する。
<ソフトウェア構成>
以上で説明したインストーラ211と共通デバイスドライバ管理212と対象デバイスリスト221との3つによって、周辺装置識別情報付与手段801が実現される。本発明に対応するソフト構成図を図8に示す。共通インタフェース213は、アプリケーションからUSBデバイスに対する通信要求を受けて、その要求を次に述べる利用可能な共通デバイスドライバ214と共通デバイスドライバ215とに振り分ける制御を行う。通信要求が示す通信先のUSBデバイスに対してロードされているデバイスドライバを判別し、通信要求を振り分ける。共通デバイスドライバ214は、アプリケーションがUSBデバイスの振る舞いを制御するためのドライバであって、後述する共通デバイスドライバ215と機能的には同じである。共通デバイスドライバ214は、後述するUSB−Coreドライバへ、他のドライバよりも後に利用可能なデバイスドライバとして後述するデバイスドライバ登録218が登録する。USB−Coreドライバは登録された順序で優先度を決めるため、共通デバイスドライバ214は一番低い優先度で認識される。また、共通デバイスドライバ214は、デバイスドライバ登録218により登録される際に、自らがサポートするUSBデバイスの識別子を、ワイルドカード“*”で指定する。そうすることで、共通デバイスドライバ214以外のドライバがロードされなかったUSBデバイスに対しては、必ず共通デバイスドライバ214がロードされるようになる。これにより、USBデバイスに対し必ず、汎用クラスドライバ、ベンダ固有ドライバ、共通デバイスドライバのいずれかが提供されることとなる。
共通デバイスドライバ215は、アプリケーションがUSBデバイスの振る舞いを制御するためのドライバであって、共通デバイスドライバ214と機能的には同じである。共通デバイスドライバ214と異なる点としては、USB−Coreドライバへ登録する際に対象デバイスリスト221を付与され識別情報を有することである。共通デバイスドライバ215は、後述するUSB−Coreドライバへ、後述する汎用クラスドライバ216よりは先に、ベンダ固有ドライバ217よりは後に利用可能なデバイスドライバとしてデバイスドライバ登録218によって登録される。上述の通り、USB−Coreドライバは登録された順序で優先度を決めるため、共通デバイスドライバ215は汎用クラスドライバ216よりは優先度高く、またベンダ固有ドライバ217よりは優先度が低く設定される。また、共通デバイスドライバ215は、自らがサポートするUSBデバイスの識別子を、対象デバイスリスト221に基づいて付与し、その後登録される。上述の通り、前記対象デバイスリスト221にはアプリケーションが“ReservedUSBDevices”で定義したUSBデバイスの識別子が記載されている。そのため、この構成をとることで汎用クラスのUSBデバイスであっても共通デバイスドライバ215がロードされることになる。すなわち、アプリケーションで振る舞いを制御することが可能となる。つまり、共通デバイスドライバ215に識別情報を付与可能な第一の共通デバイスドライバであり、共通デバイスドライバ214が第二の共通デバイスドライバである。
汎用クラスドライバ216は、汎用クラスのUSBデバイスの振る舞いを制御するデバイスドライバである。汎用クラスの説明は前述の通りである。汎用クラスは複数種類存在し、汎用クラスドライバ216もOSがサポートする汎用クラスの数だけ存在する。汎用クラスドライバ216は、USB−Coreドライバに対し、共通デバイスドライバ214よりは前に登録され、共通デバイスドライバ215や後述するベンダ固有ドライバ217よりは後に登録される。上述の通り、USB−Coreドライバは登録された順序で優先度を決めるため、汎用クラスドライバ216は共通デバイスドライバ214よりは優先度高く、また共通デバイスドライバ215や後述するベンダ固有ドライバ217よりは優先度が低く設定される。
ベンダ固有ドライバ217は、USBデバイスのベンダ固有の振る舞いを制御する専用のデバイスドライバである。ベンダ固有ドライバ217は、1つで複数種類のUSBデバイスをサポートすることが可能である。ベンダ固有ドライバ217は、他の全てのドライバより前に登録される。上述の通り、USB−Coreドライバは登録された順序で優先度を決めるため、ベンダ固有ドライバ217は他の全てのドライバより優先度が高く設定される。
デバイスドライバ登録218は、共通デバイスドライバ213、共通デバイスドライバ214、汎用クラスドライバ216、ベンダ固有ドライバ217を含む複数のデバイスドライバをUSB−Coreドライバ219に登録する処理を行う。その際、登録する順序を制御し、USB−Coreドライバに設定させるべき優先度を考慮して登録の順序に関する情報を管理する。本発明におけるデバイス識別情報登録手段802は、デバイスドライバ登録218及びUSB−Coreドライバ219を有する。上述の通り共通デバイスドライバ214、共通デバイスドライバ215を内部的に保持することで構成される。また、本実施形態においては、共通デバイスドライバ214、215の他、汎用クラスドライバ216及びベンダ固有ドライバ217も併せて内部に保持されることとなる。
ここで、後に述べるUSB−Coreドライバ219に登録されるデバイスドライバを読み出す際の順番を明確化するため、デバイスドライバの情報とその順序に関する情報とが対応付けられて保持される形式を便宜上、登録リストと呼ぶ。この登録リストに基づいてデバイスドライバ登録218は、各デバイスドライバをUSB−Coreドライバ219へ登録する。ただし、ドライバを登録する際の順番に関する保持形式はこれに限定するものではなく、USB−Coreドライバ219への登録順を制御できればどのようなものでも構わない。ここでの登録リストにはデバイスドライバ毎に優先度を付して、デバイスドライバを登録することとする。以上にも述べたように、後で述べるUSB−Coreドライバは、登録された順にデバイスドライバを読み出す順番を認識する。
USB−Coreドライバ219は、Linux OSのカーネルが備えるUSB用のサブシステムである。USB−Coreドライバ219の役割は、USBコントローラと呼ばれるUSBデバイスを制御するためのハードウェアを抽象化してデバイスドライバにAPIを提供することと、登録されたデバイスドライバとUSBデバイスのリストを管理することである。ここでのリストとは、次に述べる対象デバイスリスト221や先に便宜上述べた登録リストとは異なる点に注意されたい。
以上をまとめると、USB−Coreドライバ219において、各ドライバは以下の順番で高い優先度が決定される。
(1) ベンダ固有ドライバ217
(2) 共通デバイスドライバ215(識別情報有り)
(3) 汎用クラスドライバ216
(4) 共通デバイスドライバ214(識別情報無し)
図9に併せてUSB−Coreデバイスドライバ219に登録される便宜的な優先度の順番をデバイスドライバの種別毎に示しておく。
対象デバイスリスト221は、共通デバイスドライバ215がサポートするUSBデバイスの識別情報を管理したリストである。その詳細については前述の通りである。これまで述べてきたUSB−Coreドライバ219への登録対象となる各デバイスドライバを登録するまでの概要フローチャートを図10に示す。ここでの優先度は便宜的に図9で示したものを利用している。図10の手順は、CPU110により例えば不揮発性メモリ111に記憶したプログラムを実行することで実現する。また、ここでの処理はデバイスドライバ218が主に行う処理となる。
S1001は図3の説明にて後述するアプリケーションインストール処理(対象デバイスリスト更新)の処理を示す。次にインストールしたアプリケーションに伴って、登録する対象ドライバが共通デバイスドライバか否かを判定する(S1002)。共通デバイスドライバであれば、S1006へ、それ以外のドライバであればS1003へ進む。S1003において、登録する対象デバイスドライバがベンダ固有ドライバか否かを判定する。ベンダ固有ドライバであればS1005へ、そうでなければ(つまり、汎用クラスドライバ)であればS1004へ進む。S1004において、対象ドライバ(つまり、汎用クラスドライバ)をUSB−Coreドライバ219へ登録する際に、優先度“低”となるような順番でデバイスドライバ登録218が保持する。ここでは登録リストへの追加とする。S1005においては、対象ドライバ(つまり、ベンダ固有ドライバ)をUSB−Coreドライバ219へ登録する際に、優先度“高”となるような順番でデバイスドライバ登録218が保持する。ここでは登録リストへの追加とする。S1006においては、対象デバイス(つまり、共通デバイスドライバ)をUSB−Coreドライバ219へ登録する際に、優先度“最低”となるような順番でデバイスドライバ登録218が保持する。ここでは登録リストへの追加とする。続いてS1007へ進む。S1007において、対象ドライバに識別情報を付与し、USB−Coreドライバ219へ登録する際に、優先度“中”となるような順番でデバイスドライバ登録218が保持する。ここでは登録リストへの追加とする。ここでの識別情報は対象デバイスリスト221に基づいて取得することが可能である。ちなみに、S1006及びS1007はどちらを先に処理しても構わないものとする。S1004、S1005、S1007(またはS1006)の処理が終了したら、S1008へ進む。S1008には図4にて述べた処理が対応する。これにより、登録リストにて管理されたデバイスドライバをUSB−Coreドライバ219へ登録して反映する。
<アプリケーションインストール処理(デバイスリスト更新)>
図3は、本発明における実施形態を説明するためのフローチャートである。図3では、アプリケーションをインストールする際に、アプリケーションが制御するUSBデバイスの識別情報を対象デバイスリストへ登録する処理の流れを示す。本発明の各処理は、不揮発性メモリ111、揮発性メモリ112、補助記憶装置113のいずれかの記憶手段に記憶され、CPU110により実行される。
ステップ301では、アプリケーションのインストール指示を受け付ける。アプリケーションのインストールを指示するための手段については特に限定しないが、ディスプレイ114と入力装置115を用いてユーザの指示により補助記憶装置113に予め記憶されたアプリケーションをインストールする方法などが考えられる。ステップ302では、インストーラ211はアプリケーションが有する設定ファイルを取得する。ステップ303では、設定ファイルの中にUSBデバイスの識別情報が含まれているかをチェックする。識別情報が含まれているかの判定は、設定ファイルの中にReservedUSBDevicesの定義が含まれており、現在の設定に対し更に利用可能とすべきUSBデバイスの設定が含まれているかで判定する。利用可能な設定か否かについては、前述において図6を用いて述べた通りである。設定ファイルの中にUSBデバイスの識別情報が含まれていた場合、ステップ304の処理を行う。また、含まれていなかった場合、ステップ306の処理へ進む。ステップ304では、インストーラ211が共通デバイスドライバ管理212にステップ302において取得した設定ファイルに定義されたアプリケーションIDとUSBデバイスの識別情報を登録する。アプリケーションIDは、“Application−Id”に記載された文字列を用いる。また、USBデバイスの識別情報は、“ReservedUSBDevices”に2バイトの数字で定義された2つの識別子の組み合わせを用いる。ステップ305では、共通デバイスドライバ管理212が、ステップ304において登録されたアプリケーションIDとUSBデバイスの識別情報を対象デバイスリスト221に追加登録する。ステップ306では、インストーラ211が、アプリケーションをインストールする処理を行う。以上の流れで、アプリケーションをインストールする際のアプリケーションが制御するUSBデバイスの識別情報を登録する処理を行う。
<デバイスドライバ登録処理(画像形成装置起動時)>
図4は、本発明における実施形態を説明するためのフローチャートである。図4では、画像形成装置101を起動した際におけるデバイスドライバの登録処理の流れを示す。図3の説明で記載した通り、本発明の各処理は、不揮発性メモリ111、揮発性メモリ112、補助記憶装置113のいずれかの記憶手段によって記憶され、CPU110により実行される。
ステップ401では、画像形成装置101の起動処理が開始される。ステップ402では、Linux OSのカーネルイメージがロードされ、起動処理を行う。ステップ403では、画像形成装置101に保持されるデバイスドライバに対して順次登録処理を行うために、デバイスドライバ登録218は1つずつデバイスドライバを登録リストから処理対象として取り出す処理を行う。すでに述べたように、USB−Coreドライバ219は登録順にて優先度を決定するため、ここでの取り出す処理は図9で述べた順番で処理される。全て処理済みであれば、本フローチャートで説明するデバイスドライバの登録処理を終了する。まだ登録処理が終わっていないデバイスドライバが存在する場合、ステップ404へ進む。ステップ404では、ステップ403において取り出したデバイスドライバをUSB−Coreドライバ219へ登録する。Linux OSにおける“modprobe”コマンドを用いるなどして登録する。ステップ405では、ステップ404においてLinux OSに登録されたデバイスドライバが、自らがサポートするUSBデバイスの識別情報をUSB−Coreドライバ219へ登録する。Linux OSが提供するusb_register関数を用いるなどして登録する。詳細に関しては、提供するLinux OSの形式等に依存し限定はしない。よって、ここでは割愛する。ステップ405の処理が終わると、ステップ403に戻り処理を繰り返す。以上の流れで、画像形成装置の起動時におけるデバイスドライバの登録処理を行う。
<アプリケーションアンインストール処理(デバイスリスト更新)>
図5は、本発明の実施例を説明するためのフローチャートである。図5では、アプリケーションをアンインストールする処理の流れを示す。図3の説明で記載した通り、本発明の各処理は、不揮発性メモリ111、揮発性メモリ112、補助記憶装置113のいずれかの記憶手段に記憶され、CPU110により実行される。
ステップ501では、アプリケーションのアンインストール指示を受け付ける。アプリケーションのアンインストールを指示する手段については特に限定しないが、ディスプレイ114と入力装置115を用いてユーザがアンインストールを指示する方法などが考えられる。ステップ502では、インストーラ211はアプリケーションが有する設定ファイルを取得する。アンインストールするアプリケーションは、補助記憶装置113に記憶されている。ステップ503では、ステップ502において取得した設定ファイルの中にUSBデバイスの識別情報が含まれているかをチェックする。識別情報が含まれているかの判定は、設定ファイルの中に“ReservedUSBDevices”の定義が含まれており、現在の設定に対し更に利用可能な設定が行われているかで判定する。利用可能な設定については、上述の通りである。設定ファイルの中にUSBデバイスの識別情報が含まれていた場合、ステップ504へ進む。また、含まれていなかった場合、ステップ506へ進む。ステップ504では、インストーラ211が共通デバイスドライバ管理212にステップ502にて取得した設定ファイルに記載されたアプリケーションIDとUSBデバイスの識別情報を登録解除する。アプリケーションIDは、“Application−Id”に記載された文字列を用いる。また、USBデバイスの識別情報は、“ResevedUSBDevices”に2バイトの数字で定義された2つの識別子の組み合わせを用いる。ステップ505では、共通デバイスドライバ管理212が、ステップ504にて登録されたアプリケーションIDとUSBデバイスの識別情報を対象デバイスリスト221から登録解除し、更新する。登録解除の際は、これらの情報が全て適合した場合のみ削除する。適合する情報が登録されていない場合、更新処理を行わない。ステップ506では、アプリケーションのアンインストール処理を行う。以上の流れで、アプリケーションをアンインストールする際のアプリケーションが制御するUSBデバイスの識別情報を登録解除する処理を行う。以上、本発明を実施するための第1の形態について説明した。これにより、共通デバイスドライバを介してUSBデバイスを制御するアプリケーションが、所望するUSBデバイスを制御できるようになる。同時に、特定のUSBデバイスが所望するデバイスドライバがOS内に存在しない場合に、従来通り共通デバイスドライバがロードされ、アプリケーションから制御できる。
<その他の実施形態>
本発明を実施するための第一の実施形態において説明した各手段は、それぞれ別の構成によって実現することも可能である。ここでは、他の実施形態として、第一の実施形態で説明した各手段に基づいて別の構成について説明する。
第一の実施形態におけるUSBホストコントローラ116は、別の周辺装置を接続するためのハードウェアに置き換えられても良い。例えば、SCSIホストコントローラであっても良い。その場合、USBケーブル130もSCSIケーブルに置き換えられ、同様にUSBデバイス140はSCSI接続に対応した周辺装置となる。外付けデバイスは、周辺装置の一例である。画像形成装置をUSBなどのホストとみた場合の周辺装置という位置付けである。画像形成装置に対してUSBなどの通信インタフェースを介して外付けされていることもある。また、画像形成装置のUSBインタフェース116等を介して接続され、画像形成装置の筐体内部に内蔵されていてもよい。
また、第一の実施形態におけるアプリケーション201が保持する設定ファイルは、ファイルの形式でなくても良い。例えば、インストーラ211から呼び出し可能な関数コールの機能を備え、関数コールを介して設定ファイルに保持する情報を受け渡しする構成であっても良い。
また、第一の実施形態におけるインストーラ211、共通デバイスドライバ管理212、対象デバイスリスト221で構成された周辺装置識別情報付与手段801は、別の構成でも良い。例えば、インストーラ211がなく、アプリケーション201が共通デバイスドライバ管理212を呼び出す構成であってもよい。更に、共通デバイスドライバ管理212がなく、アプリケーション201が対象デバイスリスト221にUSBデバイスの識別情報を書き込む構成であっても良い。
更に別の例として、対象デバイスリスト221がファイルではなく、不揮発性メモリ111上の共有メモリに一時的に保持される構造体であっても良い。この場合、アプリケーション201は共有メモリにアクセスし、対象デバイスリスト221の情報を更新することとなる。または、共通デバイスドライバ215が管理するメモリ上に保持される構造体であっても良い。この場合、アプリケーション201は共通デバイスドライバ215を呼び出して対象デバイスリスト221の情報を更新する。
また、第一の実施形態におけるインストーラ211は、アプリケーション201のインストール時とアンインストール時にそれぞれ共通デバイスドライバ管理212に必要な情報を通知していた。しかし、このタイミングはインストール時とアンインストール時でなくても構わない。例えば、アプリケーション201の動作開始時と動作停止時にそれぞれ共通デバイスドライバ管理212に必要な情報を通知する構成であっても良い。
また、第一の実施形態における共通デバイスドライバ管理212における対象デバイスリスト221を更新するか否かの判定は、より細かいチェックがあっても良い。例えば、USBデバイスベンダID602、USBデバイスプロダクトID603が一致していて、デバイスドライバ識別子604が一致しない場合は、何らかの異常が発生したとみなしてエラーを返す構成であっても良い。
また、第一の実施形態における共通インタフェース213において、対象デバイスリスト221にUSBデバイスの識別情報を登録したアプリケーションのみ通信を許可する構成であっても良い。この場合、共通インタフェース213は、アプリケーション201が有する設定ファイル701から“ReservedUSBDevices”に定義された値を読み取り、通信要求先のUSBデバイスと比較することで通信を許可するか判定する。また、別の実現方法として、共通インタフェース213が対象デバイスリスト221を参照する実現方法でも良い。その場合、アプリケーションID601、USBデバイスベンダID602、USBデバイスプロダクトID603の組み合わせチェックの結果で通信を許可するか判断する。
また、第一の実施形態における対象デバイスリスト221は、他の情報を保持していても良い。例えば、USBデバイスのリリース番号を保持し、あるリリース番号を境にデバイスドライバを切り替えることが可能な構成であっても良い。もしくは、USBデバイスのクラスコード、サブクラスコード、プロトコルコードを保持し、これらの情報によってデバイスドライバを切り替えることが可能な構成であっても良い。ここで、USBデバイスのリリース番号とは、USBデバイスが備えるDevice Descriptorの“bcdDevice”フィールドの値を指している。また、USBデバイスのクラスコードとは、USBデバイスが備えるDevice Descriptorの“bDeviceClass”フィールドの値を指している。また、USBデバイスのサブクラスコードとは、USBデバイスが備えるDevice Descriptorの“bDeviceSubclass”フィールドの値を指している。また、USBデバイスのプロトコルコードとは、USBデバイスが備えるDevice Descriptorの“bDeviceProtocol”フィールドの値を指している。もしくは、Interface Descriptorの“bDeviceClass”、“bDeviceSubclass”、“bDeviceProtocol”フィールドの値であっても良い。
以上、本発明を実施するためのその他の実施形態にについて説明した。これにより、第一の実施形態と同様に共通デバイスドライバを介してUSBデバイスを制御するアプリケーションが、所望するUSBデバイスを制御できるようになる。同時に、特定のUSBデバイスが所望するデバイスドライバがOS内に存在しない場合に、従来通り共通デバイスドライバがロードされ、アプリケーションから制御できる。
<備考>
なお本発明は、複数の機器(例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また本発明の目的は、前述の実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによっても達成される。この場合、記憶媒体から読み出された実行可能なプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体およびプログラムを記憶した記憶媒体は本発明を構成することになる。
ちなみに、プログラムを供給するための記憶媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、本発明には、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
また、発明の実施の形態は、本発明を中核として構成される装置又は方法を説明している。このため本実施形態には本発明の本質的部分を加えて付加的な構成要件も記載されている。すなわち発明の実施の形態において説明した装置又は方法の構成要件を備えることは、本発明を成立させるための十分条件ではあるものの、必要条件ではない。
本発明における第一の実施形態を説明するためのハードウェア構成図の例である。 本発明における第一の実施形態を説明するためのソフトウェア構成図の例である。 本発明における第一の実施形態を説明するための、アプリケーションをインストールする際に、アプリケーションが制御するUSBデバイスの識別情報を登録する処理の流れを示すフローチャートである。 本発明における第一の実施形態を説明するための、画像形成装置を起動した際においてデバイスドライバの登録処理の流れを示すフローチャートである。 本発明における第一の実施形態を説明するための、アプリケーションをアンインストールする際においてアプリケーションが制御するUSBデバイスの識別情報を登録解除する処理の流れを示すフローチャートである。 本発明において第一の実施形態を説明するための対象デバイスリストの例である。 本発明において第一の実施形態を説明するためのアプリケーションが有する設定ファイルの例である。 本発明において特徴を説明するためのソフトウェア構成図の例である。 本発明においてデバイスドライバの登録における優先度を便宜的に示したものである。 本発明においてデバイスドライバを画像形成装置に登録するまでの処理の流れを便宜的に示したフローチャートの図である。
101 画像形成装置
110 CPU
111 不揮発性メモリ
112 揮発性メモリ
113 補助記憶装置
114 ディスプレイ
115 入力装置
116 USBホストコントローラ
130 USBケーブル
140 USBデバイス
201 アプリケーション
211 インストーラ
212 共通デバイスドライバ管理
213 共通インタフェース
214 共通デバイスドライバ
216 汎用クラスドライバ
217 ベンダ固有ドライバ
218 デバイスドライバ登録
219 USB−Coreドライバ
221 対象デバイスリスト

Claims (18)

  1. 登録されたライバの情報を管理し、登録されたライバをロードするオペレーティングシステムと、周辺装置の動作を制御するための汎用クラスドライバと、周辺装置の動作を制御するロジックを有するアプリケーションが当該周辺装置を制御する際に利用する共通デバイスドライバと、を有する画像形成装置であって、
    前記アプリケーションが制御を行う周辺装置の識別情報を前記共通デバイスドライバに付与する付与手段と、
    周辺装置が前記画像形成装置に接続された際当該周辺装置を制御するために利用する共通デバイスドライバであって該周辺装置の識別情報が付与された共通デバイスドライバが該周辺装置を制御するための汎用クラスドライバよりも優先的に利用されるように、前記オペレーティングシステムに対しライバの情報を登録する登録手段と
    を有することを特徴とする画像形成装置。
  2. 前記識別情報が付与された共通デバイスドライバは、第一の共通デバイスドライバであり、
    前記登録手段は、前記識別情報が付与されていない第二の共通デバイスドライバを、前記第一の共通デバイスドライバとは別に、前記アプリケーションにより利用可能なデバイスドライバとして前記オペレーティングシステムへ登録し、
    前記オペレーティングシステムは、周辺装置が前記画像形成装置に接続された際に、当該周辺装置を制御するための前記第一の共通デバイスドライバ、および当該周辺装置を制御するための汎用クラスドライバの両方が存在しない場合には、前記識別情報が付与されていない第二の共通デバイスドライバを利用することを特徴とする請求項に記載の画像形成装置。
  3. 前記オペレーティングシステムは、記画像形成装置に接続された辺装置に対応する、ベンダ固有のドライバ他のドライバよりも優先的に利用することを特徴とする請求項1または2に記載の画像形成装置。
  4. 登録されたライバの情報を管理し、登録されたライバをロードするオペレーティングシステムと、周辺装置の動作を制御するための汎用クラスドライバと、周辺装置の動作を制御するロジックを有するアプリケーションが当該周辺装置を制御する際に利用する共通デバイスドライバと、を有する装置であって、
    周辺装置が前記装置に接続された際に該周辺装置を制御するために利用する共通デバイスドライバであって該周辺装置の識別情報が付与された共通デバイスドライバが該周辺装置を制御するための汎用クラスドライバよりも優先的に利用されるように、前記オペレーティングシステムに対しライバの情報を登録する登録手段と
    を有することを特徴とする装置。
  5. 前記識別情報が付与された共通デバイスドライバは、第一の共通デバイスドライバであり、
    前記登録手段は、前記識別情報が付与されていない第二の共通デバイスドライバを、前記第一の共通デバイスドライバとは別に、前記アプリケーションにより利用可能なデバイスドライバとして前記オペレーティングシステムへ登録し、
    前記オペレーティングシステムは、周辺装置が前記装置に接続された際に、当該周辺装置を制御するための前記第一の共通デバイスドライバ、および当該周辺装置を制御するための汎用クラスドライバの両方が存在しない場合には、前記識別情報が付与されていない第二の共通デバイスドライバを利用することを特徴とする請求項4に記載の装置。
  6. 前記オペレーティングシステムは、前記装置に接続された周辺装置に対応する、ベンダ固有のドライバを他のドライバよりも優先的に利用することを特徴とする請求項4または5に記載の装置。
  7. 登録されたライバの情報を管理し、登録されたライバをロードするオペレーティングシステムと、周辺装置の動作を制御するための汎用クラスドライバと、周辺装置の動作を制御するロジックを有するアプリケーションが当該周辺装置を制御する際に利用する共通デバイスドライバと、を有する画像形成装置の制御方法であって、
    付与手段が、前記アプリケーションが制御を行う周辺装置の識別情報を前記共通デバイスドライバに付与する付与工程と、
    登録手段が、周辺装置が前記画像形成装置に接続された際当該周辺装置を制御するために利用する共通デバイスドライバであって当該周辺装置の識別情報が付与された共通デバイスドライバが該周辺装置を制御するための汎用クラスドライバよりも優先的に利用されるように、前記オペレーティングシステムに対しライバの情報を登録する登録工程と
    を有することを特徴とする制御方法。
  8. 前記識別情報が付与された共通デバイスドライバは、第一の共通デバイスドライバであり、
    前記登録工程にて、前記識別情報が付与されていない第二の共通デバイスドライバを、前記第一の共通デバイスドライバとは別に、前記アプリケーションにより利用可能なデバイスドライバとして前記オペレーティングシステムへ登録し、
    前記オペレーティングシステムは、周辺装置が前記画像形成装置に接続された際に、当該周辺装置を制御するための前記第一の共通デバイスドライバ、および当該周辺装置を制御するための汎用クラスドライバの両方が存在しない場合には、前記識別情報が付与されていない第二の共通デバイスドライバを利用することを特徴とする請求項7に記載の制御方法。
  9. 前記オペレーティングシステムは、前記画像形成装置に接続された周辺装置に対応する、ベンダ固有のドライバを他のドライバよりも優先的に利用することを特徴とする請求項7または8に記載の画像形成装置。
  10. 登録されたライバの情報を管理し、登録されたライバをロードするオペレーティングシステムと、周辺装置の動作を制御するための汎用クラスドライバと、周辺装置の動作を制御するロジックを有するアプリケーションが当該周辺装置を制御する際に利用する共通デバイスドライバと、を有する装置の制御方法であって、
    登録手段が、周辺装置が前記装置に接続された際に該周辺装置を制御するために利用する共通デバイスドライバであって該周辺装置の識別情報が付与された共通デバイスドライバが該周辺装置を制御するための汎用クラスドライバよりも優先的に利用されるように、前記オペレーティングシステムに対しライバの情報を登録する登録工程と
    を有することを特徴とする制御方法。
  11. 前記識別情報が付与された共通デバイスドライバは、第一の共通デバイスドライバであり、
    前記登録手段は、前記識別情報が付与されていない第二の共通デバイスドライバを、前記第一の共通デバイスドライバとは別に、前記アプリケーションにより利用可能なデバイスドライバとして前記オペレーティングシステムへ登録し、
    前記オペレーティングシステムは、周辺装置が前記装置に接続された際に、当該周辺装置を制御するための前記第一の共通デバイスドライバ、および当該周辺装置を制御するための汎用クラスドライバの両方が存在しない場合には、前記識別情報が付与されていない第二の共通デバイスドライバを利用することを特徴とする請求項10に記載の制御方法。
  12. 前記オペレーティングシステムは、前記装置に接続された周辺装置に対応する、ベンダ固有のドライバを他のドライバよりも優先的に利用することを特徴とする請求項10または11に記載の制御方法。
  13. 登録されたライバの情報を管理し、登録されたライバをロードするオペレーティングシステムと、周辺装置の動作を制御するための汎用クラスドライバと、周辺装置の動作を制御するロジックを有するアプリケーションが当該周辺装置を制御する際に利用する共通デバイスドライバと、を有するコンピュータを、
    前記アプリケーションが制御を行う周辺装置の識別情報を前記共通デバイスドライバに付与する付与手段、
    周辺装置が前記コンピュータに接続された際当該周辺装置を制御するために利用する共通デバイスドライバであって該周辺装置の識別情報が付与された共通デバイスドライバが該周辺装置を制御するための汎用クラスドライバよりも優先的に利用されるように、前記オペレーティングシステムに対しライバの情報を登録する登録手段
    として機能させるためのプログラム。
  14. 前記識別情報が付与された共通デバイスドライバは、第一の共通デバイスドライバであり、
    前記登録手段は、前記識別情報が付与されていない第二の共通デバイスドライバを、前記第一の共通デバイスドライバとは別に、前記アプリケーションにより利用可能なデバイスドライバとして前記オペレーティングシステムへ登録し、
    前記オペレーティングシステムは、周辺装置が前記コンピュータに接続された際に、当該周辺装置を制御するための前記第一の共通デバイスドライバ、および当該周辺装置を制御するための汎用クラスドライバの両方が存在しない場合には、前記識別情報が付与されていない第二の共通デバイスドライバを利用することを特徴とする請求項13に記載のプログラム。
  15. 前記オペレーティングシステムは、前記コンピュータに接続された周辺装置に対応する、ベンダ固有のドライバを他のドライバよりも優先的に利用することを特徴とする請求項13または14に記載のプログラム。
  16. 登録されたライバの情報を管理し、登録されたライバをロードするオペレーティングシステムと、周辺装置の動作を制御するための汎用クラスドライバと、周辺装置の動作を制御するロジックを有するアプリケーションが当該周辺装置を制御する際に利用する共通デバイスドライバと、を有するコンピュータを、
    周辺装置が前記コンピュータに接続された際当該周辺装置を制御するために利用する共通デバイスドライバであって該周辺装置の識別情報が付与された共通デバイスドライバが該周辺装置を制御するための汎用クラスドライバよりも優先的に利用されるように、前記オペレーティングシステムに対しライバの情報を登録する登録手段
    として機能させるためのプログラム。
  17. 前記識別情報が付与された共通デバイスドライバは、第一の共通デバイスドライバであり、
    前記登録手段は、前記識別情報が付与されていない第二の共通デバイスドライバを、前記第一の共通デバイスドライバとは別に、前記アプリケーションにより利用可能なデバイスドライバとして前記オペレーティングシステムへ登録し、
    前記オペレーティングシステムは、周辺装置が前記コンピュータに接続された際に、当該周辺装置を制御するための前記第一の共通デバイスドライバ、および当該周辺装置を制御するための汎用クラスドライバの両方が存在しない場合には、前記識別情報が付与されていない第二の共通デバイスドライバを利用することを特徴とする請求項16に記載のプログラム。
  18. 前記オペレーティングシステムは、前記コンピュータに接続された周辺装置に対応する、ベンダ固有のドライバを他のドライバよりも優先的に利用することを特徴とする請求項16または17に記載のプログラム。
JP2009006119A 2009-01-14 2009-01-14 画像形成装置、装置、制御方法、及びプログラム Active JP5294892B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009006119A JP5294892B2 (ja) 2009-01-14 2009-01-14 画像形成装置、装置、制御方法、及びプログラム
US12/647,611 US8139980B2 (en) 2009-01-14 2009-12-28 Image forming apparatus, control method, and program
US13/365,499 US8351821B2 (en) 2009-01-14 2012-02-03 Image forming apparatus, control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009006119A JP5294892B2 (ja) 2009-01-14 2009-01-14 画像形成装置、装置、制御方法、及びプログラム

Publications (3)

Publication Number Publication Date
JP2010165128A JP2010165128A (ja) 2010-07-29
JP2010165128A5 JP2010165128A5 (ja) 2012-03-01
JP5294892B2 true JP5294892B2 (ja) 2013-09-18

Family

ID=42319184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009006119A Active JP5294892B2 (ja) 2009-01-14 2009-01-14 画像形成装置、装置、制御方法、及びプログラム

Country Status (2)

Country Link
US (2) US8139980B2 (ja)
JP (1) JP5294892B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5604134B2 (ja) * 2010-02-24 2014-10-08 京セラ株式会社 携帯電子機器及び機器システム
JP5703845B2 (ja) * 2011-03-01 2015-04-22 株式会社リコー 情報処理装置およびプログラム
JP5613091B2 (ja) * 2011-03-25 2014-10-22 株式会社エクサ デバイスドライバ起動監視プログラム、電子機器
JP5613090B2 (ja) * 2011-03-25 2014-10-22 株式会社エクサ デバイスドライバ選択プログラム、電子機器
JP6020032B2 (ja) * 2011-12-28 2016-11-02 株式会社リコー 情報処理装置、情報処理装置の制御方法およびプログラム
JP6123276B2 (ja) * 2012-12-18 2017-05-10 株式会社リコー 情報処理装置、およびプログラム
JP6161314B2 (ja) * 2013-02-18 2017-07-12 キヤノン株式会社 画像形成装置、制御方法およびコンピュータプログラム
JP2014203268A (ja) * 2013-04-04 2014-10-27 キヤノン株式会社 情報処理装置及び制御方法
JP2016035714A (ja) * 2014-08-04 2016-03-17 キヤノン株式会社 情報処理装置、情報処理装置におけるプログラム管理方法、プログラム、およびシステム
JP6366428B2 (ja) * 2014-08-29 2018-08-01 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP5997867B2 (ja) * 2014-09-19 2016-09-28 株式会社aLab デバイスドライバ登録装置とこれを用いたデバイスドライバの登録方法
US10437742B2 (en) 2014-10-10 2019-10-08 Microsoft Technology Licensing, Llc Vendor-specific peripheral device class identifiers
WO2016114140A1 (en) * 2015-01-14 2016-07-21 Ricoh Company, Limited Information processing apparatus, information processing system, information processing method, computer program, and storage medium
JP6769023B2 (ja) 2015-01-14 2020-10-14 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、プログラム及び記憶媒体
JP6643832B2 (ja) * 2015-08-31 2020-02-12 キヤノン株式会社 情報処理装置およびその制御方法、並びにプログラム
WO2017084051A1 (zh) * 2015-11-18 2017-05-26 深圳市大疆创新科技有限公司 外接设备的管理方法、装置、系统以及存储器、无人机
JP6674092B2 (ja) * 2016-02-10 2020-04-01 富士通株式会社 データ管理プログラム、データ管理装置、及びデータ管理方法
JP6758995B2 (ja) 2016-08-15 2020-09-23 キヤノン株式会社 画像処理装置及びその制御方法、並びにプログラム
US10338840B1 (en) 2018-03-29 2019-07-02 Apricorn Portable storage device that is self-convertible from being a removable disk to a fixed disk and from being a fixed disk to a removable disk
JP7341647B2 (ja) * 2018-10-05 2023-09-11 キヤノン株式会社 情報処理装置、制御方法及びプログラム
US10608819B1 (en) 2019-09-24 2020-03-31 Apricorn Portable storage device with internal secure controller that performs self-verification and self-generates encryption key(s) without using host or memory controller and that securely sends encryption key(s) via side channel
JP7439570B2 (ja) * 2020-03-03 2024-02-28 株式会社リコー 情報処理装置、制御方法、及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623696A (en) * 1995-05-30 1997-04-22 International Business Machines Corporation System for formatting a request into a packet which can be read by plurality of operating systems for providing a driver for a storage device
JPH1027149A (ja) * 1996-07-12 1998-01-27 Kobe Nippon Denki Software Kk 情報処理装置とそのデバイスドライバ制御方法
JP2001265612A (ja) * 2000-03-17 2001-09-28 Omron Corp 組込み機器用仮想マシンシステム
US7047534B2 (en) * 2000-03-17 2006-05-16 Microsoft Corporation Simplified device drivers for hardware devices of a computer system
JP2001344192A (ja) * 2000-05-31 2001-12-14 Fuji Photo Film Co Ltd ベンダ固有情報の送受信方法及び情報処理装置並びに提供媒体
US6671749B2 (en) * 2001-03-07 2003-12-30 Hewlett-Packard Development Company, L.P. Peripheral driver installation method and system
US20030079050A1 (en) * 2001-10-19 2003-04-24 Chang Cheng Tsung Computer system with parallel sever architecture
WO2003065188A1 (fr) * 2002-01-28 2003-08-07 Fujitsu Limited Dispositif et ordinateur principal
JP2005050064A (ja) * 2003-07-31 2005-02-24 Ricoh Co Ltd 座標入力装置
JP2005182624A (ja) * 2003-12-22 2005-07-07 Sharp Corp 情報処理装置、情報処理システム、通信速度設定方法、通信速度設定プログラム、およびそのプログラムを記録した記録媒体
JP4738773B2 (ja) 2004-08-06 2011-08-03 キヤノン株式会社 画像処理装置及びその制御方法
WO2006059493A1 (ja) 2004-11-30 2006-06-08 Nec Corporation 情報処理装置、デバイスアクセス制御方法、及びデバイスアクセス制御プログラム
JP2007110628A (ja) * 2005-10-17 2007-04-26 Canon Inc 画像形成装置におけるアプリケーション管理システム
JP4805116B2 (ja) * 2006-12-11 2011-11-02 株式会社日立製作所 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置
JP4391532B2 (ja) * 2007-01-16 2009-12-24 シャープ株式会社 制御装置、プログラム、コンピュータ読み取り可能な記録媒体、通信システム、および制御方法

Also Published As

Publication number Publication date
JP2010165128A (ja) 2010-07-29
US20120137312A1 (en) 2012-05-31
US20100178066A1 (en) 2010-07-15
US8139980B2 (en) 2012-03-20
US8351821B2 (en) 2013-01-08

Similar Documents

Publication Publication Date Title
JP5294892B2 (ja) 画像形成装置、装置、制御方法、及びプログラム
KR100675518B1 (ko) 모듈식 바이오스 업데이트 메커니즘
CN103559052B (zh) 固件更新的设备与方法
US20050038934A1 (en) USB-based peripheral device and method for starting up the USB-based peripheral device
US8582139B2 (en) Driver upgrading
US10558405B2 (en) Information processing apparatus and driver customizing method
US9916149B2 (en) Information processing apparatus, control method for information processing apparatus, and storage medium of program for executing control method
US9086938B2 (en) Information processing apparatus, control method thereof, and storage medium
US20110055854A1 (en) Image forming apparatus and method
JP4961288B2 (ja) 情報処理装置、情報処理プログラム、記録媒体、印刷装置及びネットワークシステム
JP2014170515A (ja) 機器、情報記録プログラム、及び情報記録方法
US9696978B2 (en) Information processing apparatus, application management method, and non-transitory computer-readable medium
WO2011120774A1 (en) Method for managing usb devices
US9742948B2 (en) Image forming apparatus and method for deleting application
JPH07191835A (ja) コンピュータシステム
US20190102121A1 (en) Image forming apparatus and control method therefor
US11625205B2 (en) Information processing apparatus, server apparatus, control method, and storage medium
US9753775B2 (en) Resource management apparatus and resource management method
US9940334B2 (en) Image forming apparatus and control method thereof
JP2009282775A (ja) アプリケーションプラットフォーム
US10554841B2 (en) Image forming apparatus, control method thereof and medium
US11586723B2 (en) Information processing apparatus, control method for information processing apparatus, and storage medium
US10356265B2 (en) Image processing apparatus and application management method
JP5633608B2 (ja) 画像形成装置、カウンタ管理方法、及びカウンタ管理プログラム
JP2021189487A (ja) 管理装置およびその制御方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130513

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130611

R151 Written notification of patent or utility model registration

Ref document number: 5294892

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151