(58)【調査した分野】(Int.Cl.,DB名)
組み込みOSおよび特定のハードウェアに対応する特定ドライバが書き換え不能な状態で格納される機器に前記特定のハードウェアと異なる追加のハードウェアを接続してアプリケーションを実行するに際し、
前記アプリケーションは前記追加のハードウェアに対応する追加ドライバを保持し、前記機器はアクセスを許可する追加のハードウェアの固有情報を記憶しており、
前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とを比較する比較工程と、
前記比較工程で前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とが一致する場合には前記追加ドライバを用いて前記追加のハードウェアを動作させる動作工程と
を有することを特徴とするドライバの実行方法。
組み込みOSおよび特定のハードウェアに対応する特定ドライバが書き換え不能な状態で格納される機器に前記特定のハードウェアと異なる追加のハードウェアを接続してアプリケーションを実行するに際し、
前記アプリケーションは前記追加のハードウェアに対応する追加ドライバを保持し、前記機器はアクセスを許可する追加のハードウェアの固有情報を記憶しており、
前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とを比較する比較工程と、
前記比較工程で前記アプリケーションが記憶する固有情報と前記追加のハードウェアの固有情報とが一致する場合にはアクセス許可リストに一致した固有情報を記憶させる固有情報記憶工程と、
前記アプリケーションがアクセスする追加のハードウェアの固有情報が前記アクセス許可リストに記憶されている場合および前記比較工程で前記機器が記憶する固有情報と前記追加のハードウェアの固有情報とが一致する場合には前記追加ドライバを用いて前記追加のハードウェアを動作させる動作工程と
を有することを特徴とするドライバの実行方法。
前記アプリケーションが記憶する固有情報は、1または複数の前記アプリケーションが記憶する固有情報をドライバリストとして保持されることを特徴とする請求項1〜請求項4のいずれか1項に記載のドライバの実行方法。
前記機器に接続された前記追加のハードウェアの固有情報を接続リストに記憶する工程をさらに有し、前記比較工程において、前記追加のハードウェアの固有情報として前記接続リストに記憶された固有情報を用いて比較することを特徴とする請求項1〜請求項5のいずれか1項に記載のドライバの実行方法。
あらかじめ前記追加のハードウェアがアクセスすることを許可するリソースを設定しておき、前記動作工程において、前記追加のハードウェアを動作させる際に、許可された前記リソース以外のリソースに前記追加のハードウェアがアクセスすることを禁止することを特徴とする請求項1〜請求項6のいずれか1項に記載のドライバの実行方法。
あらかじめ前記アプリケーションおよび前記追加のハードウェアに同一の暗号キーを格納しておき、前記比較工程において前記アプリケーションが保持する暗号キーと前記追加のハードウェアが保持する暗号キーとを比較し、一致する場合のみ、前記動作工程において前記アプリケーションに保持されているドライバを用いて前記追加のハードウェアを動作させることを特徴とする請求項1〜請求項7のいずれか1項に記載のドライバの実行方法。
あらかじめ前記追加のハードウェアがアクセスすることを許可するリソースを設定しておき、前記追加のハードウェアを動作させる際に、許可された前記リソース以外のリソースに前記追加のハードウェアがアクセスすることを禁止することを特徴とする請求項9または請求項10に記載の機器。
あらかじめ前記アプリケーションおよび前記追加のハードウェアに同一の暗号キーを格納しておき、前記アプリケーションが保持する暗号キーと前記追加のハードウェアが保持する暗号キーとを比較し、一致する場合のみ、前記アプリケーションに保持されているドライバを用いて前記追加のハードウェアを動作させることを特徴とする請求項9〜請求項11のいずれか1項に記載の機器。
【発明を実施するための形態】
【0012】
産業用機器やPC等の様々な機器は、一般的にコンピュータにより制御されて各種の動作を行う。コンピュータはCPU等の演算装置やメモリ等の記憶装置,入出力装置等から構成される。また、コンピュータ制御された産業用機器等の機器においては、CPUや周辺機器を動作させるためのOSやドライバがインストールされる。これらの機器には、あらかじめ、OSやドライバをROM等の書き換え不能な記憶装置に記憶させておくものもある。このような組み込みOSがインストールされた機器では、OSによりコンピュータを動作させ、ドライバにより外部接続される周辺機器を動作させて、アプリケーションを実行する。
【0013】
ここでの説明において、記憶装置には、揮発性の主記憶装置や不揮発性の補助記憶装置が含まれる。
また、主記憶装置は例えば、メインメモリやキャッシュメモリ等であり、補助記憶装置はハードディスク、USBメモリ、その他メモリーカード等である。
【0014】
ここで、書き換え不能な記憶装置とは、一度しか書き込めないROM等のWrite Once Read Many(ライトワンスリードメニー)や、機器の製造者でなければ内容を変更できないデバイス、つまり特定の手順を行わないと書き換えできないデバイスであるPROM、EPROM (Erasable Programmable Read Only Memory)およびEEPROM(Electrically Erasable PROM)等が挙げられる。
【0015】
書き換え可能な記憶装置とは、機器を使用するにあたり通常変更可能なものであり、機器の製造者以外でも内容を変更することができるデバイスで、例えばメインメモリ、ハードディスク、USBメモリ、その他メモリーカード等が挙げられる。
【0016】
なお書き換え可能な記憶装置であっても、製造者のみが知りえる方法であり、使用者が知りえない方法でソフトウェア的にプロテクトをかけているデバイスやそのエリアについては、書き換え不能な記憶装置と解釈できる。
【0017】
周辺機器は、あらかじめROM等の書き換え不能な記憶装置に記憶されるドライバを用いて動作する。この周辺機器を特定のハードウェアと称し、このドライバを特定ドライバと称す。アプリケーションは、この特定ドライバを用いて特定のハードウェアにアクセスしながら動作することができる。
【0018】
本発明では、このような特定のハードウェア以外のハードウェアについても動作を可能とする。そのために、まず、アプリケーションがアクセスすることを許可するハードウェアの動作に用いるドライバを、アプリケーションがあらかじめ保持する。特定のハードウェア以外のハードウェアの内、アプリケーションがアクセスすることを許可するハードウェアを追加のハードウェアと称し、アプリケーションが保持する追加のハードウェアのドライバを追加ドライバと称す。そして、機器は、追加のハードウェアの固有情報をあらかじめ保持し、接続されたハードウェアの固有情報と保持された固有情報とを比較し、一致する場合は、接続されたハードウェアが追加のハードウェアであると判断して、アプリケーションが保持する追加ドライバを用いて追加のハードウェアを動作させる。
【0019】
ここで、あらかじめ保持される追加のハードウェアの固有情報は、アプリケーションに保持されても良いし、別途設けるドライバリストに記録しても良い。ドライバリストは、アプリケーションが内蔵しても良いし、RAM等の機器内の記憶装置に格納しても良い。また、ドライバリストには、1つの追加のハードウェアの固有情報を記録しても良いし、アクセスが許可される複数の追加のハードウェアの固有情報をリストアップしても良い。
【0020】
また、固有情報の確認は、アプリケーションが追加のハードウェアにアクセスする毎に行っても良いが、1度固有情報を確認した後は、アプリケーションが同じ追加のハードウェアにアクセスする限り、固有情報の一致の確認をすることなく追加のハードウェアを動作させても良い。例えば、1度固有情報の一致を確認した後、一致した固有情報をアクセス許可リストに記載する。アプリケーションが追加のハードウェアにアクセスする際は、まず、アクセス許可リストに記録されている固有情報がアプリケーションがアクセスしようとする追加のハードウェアの固有情報と一致するかを確認し、一致していればアプリケーションが保持する追加ドライバで追加のハードウェアを動作させる。一致していなければ、つまり、アクセス許可リストに、アプリケーションがアクセスしようとする追加のハードウェアの固有情報が記憶されていなければ、最初のアクセスであるので、アプリケーションが保持する固有情報と追加のハードウェアの固有情報を比較し、一致する場合のみアプリケーションが保持する追加ドライバで追加のハードウェアを動作させる。ここで、アクセス許可リストはRAM等の機器に内蔵される記憶装置に格納される。
【0021】
また、接続された追加のハードウェアの固有情報を記載する、接続リストがさらに保持されても良い。追加のハードウェアが接続された状態で機器に電源が投入された際や、電源が投入されている機器に追加のハードウェアを接続してプラグ&プレイされた時等の、機器が最初に追加のハードウェアを認識した時に、追加のハードウェアの固有情報を、演算装置が接続リストに書き込む。そして、固有情報を比較する際に、アプリケーションが保持する固有情報と、接続リストに記載された固有情報とを比較する。接続リストはRAM等の機器に内蔵される記憶装置に格納される。
【0022】
以下、図面を用いて本発明のドライバの実行方法および機器の構成例として、実施の形態について説明する。
(実施の形態1)
まず、
図1,
図2を用いて、実施の形態1における組み込みOSがインストールされた機器について説明する。
【0023】
図1は実施の形態1における組み込みOSがインストールされた機器の構成を示す概略図、
図2は実施の形態1におけるドライバの実行方法の概略フローを示す図である。
図1に示すように、実施の形態1における組み込みOSがインストールされた産業用機器等の機器1は、CPU2等の演算装置と、ROM3等の書き換え不能な記憶装置と、RAM4等の書き換え可能な記憶装置と、周辺機器等の外付けのハードウェア5を接続するためのインターフェース6と、機器1の機能に応じた様々な装置(図示せず)等から構成される。以下の説明では、演算装置の例としてCPU2,書き換え不能な記憶装置としてROM3,書き換え可能な記憶装置としてRAM4を備える機器1を例に説明する。
【0024】
ROM3には、OS7およびドライバ8が格納される。CPU2はOS7を読み出して機器1が行うべき動作を実行させる。OS7およびドライバ8は、機器1の製造段階でROM3に格納され、機器1の出荷の際には、すでに格納され、ユーザー等は格納後に追加や修正を行うことはできない。また、ドライバ8は、OS7のカーネル領域等に格納されていても良いし、OS7の格納領域以外のROM3の記憶領域に格納されていても良い。
【0025】
ドライバ8は、1つ以上の特定ドライバ9と1つの仮ドライバ10とから構成される。特定ドライバ9は、機器1に接続されるハードウェア5を動作させるために実行されるドライバに相当する処理手順であり、あらかじめ接続されることが想定されるハードウェア5毎に特定ドライバ9として格納される。ハードウェア5としてあらかじめ接続されることが想定される特定のハードウェアが接続されると、その特定のハードウェアに対応する特定ドライバ9が実行され、その特定のハードウェアを駆動することができる。
【0026】
仮ドライバ10は、上述の特定のハードウェア以外のハードウェア(以下、追加のハードウェアと称す)が機器1に接続された時に読み込まれるものである。例えば、機器1に電源が供給され動作可能状態であるときにUSBデバイスのようなプラグインプレイ対応のデバイスが接続された場合や、機器1にデバイスが接続されている状態で電源が供給された場合に、仮ドライバ10は読み込まれる。仮ドライバ10が読み込まれると、CUP2は、接続された追加のハードウェアからベンダIDやデバイスID等のハードウェアに固有な固有情報を読み出す。さらに、読み出した固有情報と、後述のドライバリスト11に記述された固有情報を比較する。
【0027】
RAM4には、アプリケーションとドライバリスト11が格納される。アプリケーションとしては、ハードウェア5のドライバを備えないアプリケーション12と、そのアプリケーションが使用する追加のハードウェアに対応する追加ドライバ13を備えるアプリケーション14とを格納することができる。
【0028】
ドライバリスト11には、機器1に接続されることが予定される追加のハードウェアのベンダIDやデバイスID等のハードウェアに固有な固有情報が記載される。アプリケーション12,アプリケーション14およびドライバリスト11は、機器1の出荷の段階で格納されていても良いし、必要に応じて、出荷後に格納しても良く、修正,消去することも可能である。特に、接続されるハードウェアがバージョンアップした時や、新たに開発されたハードウェアを使用したい場合に、アプリケーション14およびドライバリスト11を追加,修正することができる。ドライバリスト11は、アプリケーション14に内蔵されていても、外部に格納されても良い。その場合、アプリケーション14が格納されるRAM4やその他の機器1に内蔵される書き換え可能な記憶装置に格納される。さらに、ドライバリスト11の形態でなく、アプリケーション14が、アクセスを許可する追加のハードウェアの固有情報を保持しても良い。
【0029】
このように、実施の形態1における組み込みOSがインストールされた機器1では、あらかじめ、ドライバリスト11は、機器1に接続されることが予定される追加のハードウェアのベンダIDやデバイスID等のハードウェアに固有な固有情報が記載され、使用する追加のハードウェアの追加ドライバ13をアプリケーション14が保持している。そして、この追加のハードウェアを動作させてアプリケーション14が実行される際には、インターフェース6を介して機器1に接続された追加のハードウェアの固有情報が、ドライバリスト11に記載された固有情報に含まれているかどうかを、CPU2が仮ドライバ10を介して確認し、含まれている場合には、アプリケーション14が保持するドライバを用いてCPU2が追加のハードウェアを駆動してアプリケーション14を実行する。これにより、ドライバ8の書き換えや追加をすることができない組み込みOSがインストールされた機器であっても、新たに使用する追加のハードウェアの固有情報をドライバリスト11に記載し、アプリケーション14に追加ドライバ13を保持することにより、あらかじめ対応するドライバが格納されていない追加のハードウェアであっても、機器1に接続して動作させることができる。
【0030】
次に、
図10,
図11を用いて、ドライバリスト11および仮ドライバ10の機能を説明する。
図10は本発明のドライバリストの機能を例示する図、
図11は本発明の仮ドライバの機能を例示する図である。
【0031】
図10に例示するように、ドライバリスト11には、アクセスを許可する追加のハードウェアの名称に対応する例えばベンダIDやデバイスID等の固有情報がリストアップされる。
【0032】
追加ドライバ13は、追加のハードウェアにアクセスするために、
図11に示すような仮ドライバ10のFunctionを組み合わして作成されたプログラムである。アプリケーション14は、追加ドライバ13を用いることで、追加のハードウェアを使用可能状態としたり、追加のハードウェアにアクセスすることができる。追加のハードウェアにアクセスできるのは、追加ドライバ13が、追加のハードウェアのアドレスへの書込み、または読出しを、仮ドライバ10を介して実行できるためである。
【0033】
次に、
図1,
図2を用いて、実施の形態1における組み込みOSがインストールされた機器におけるドライバの実行方法について詳細に説明する。
上述のように、実施の形態1における組み込みOSがインストールされた機器1では、ROM3に、特定ドライバ9と仮ドライバ10とを有するドライバ8、およびOS7が格納されている。また、RAM4には、追加ドライバ13を保持するアプリケーション14とドライバリスト11が記録されている。ドライバリスト11には、ROM3に格納された特定ドライバ9に対応する特定のハードウェア以外のハードウェアの内、使用を予定する追加のハードウェアの固有情報があらかじめ記載されている。なお、アプリケーション14は複数種類格納されていても良く、他にアプリケーション12を格納していても良い。また、ドライバリスト11にも、複数の追加のハードウェアの固有情報を記述していても良い。また、ドライバリスト11は、アプリケーション14に内蔵されていても、外部に格納されても良い。その場合、アプリケーション14が格納されるRAM4やその他の機器1に内蔵される書き換え可能な記憶装置に格納される。さらに、ドライバリスト11の形態でなく、アプリケーション14が、アクセスを許可する追加のハードウェアの固有情報を保持しても良い。
【0034】
このような機器1において、機器1のインターフェース6にハードウェアが接続され、機器1がハードウェアの接続を検出すると(ステップ1)、CPU2は、ドライバ8を読み出して、接続されたハードウェアに対応する特定ドライバ9が含まれるかどうかを確認する(ステップ2)。接続されたハードウェアに対応する特定ドライバ9が含まれる場合、接続されたハードウェアを特定のハードウェアと判断し、CPU2は、従来と同様に、対応するドライバ9を実行して接続された特定のハードウェアを駆動する(ステップ3)。また、接続されたハードウェアに対応する特定ドライバ9が含まれない場合、仮ドライバ10は、ドライバリスト11を読み出すと共に接続されたハードウェアの固有情報を読み出す(ステップ4)。そして、仮ドライバ10は、接続されたハードウェアの固有情報がドライバリスト11に記載されているかどうかを比較する(ステップ5)。比較した結果、固有情報が一致しない場合は、機器1が接続されたハードウェアに対応するドライバを備えていないので、接続されたハードウェアは駆動されない(ステップ6)。比較した結果、固有情報が一致する場合は、接続されたハードウェアは追加のハードウェアであると判断し、CPU2は接続された追加のハードウェアの駆動を許可し、仮ドライバ10はアプリケーション14から追加ドライバ13を読み出す(ステップ7)。CPU2は、読み出した追加ドライバ13を用いて接続された追加のハードウェアを駆動して、アプリケーション14を実行する(ステップ8)。
【0035】
従来の、書き換え不能な記憶装置にOSおよびドライバが固定されている、組み込みOSがインストールされた機器では、ドライバの追加,修正ができないので、あらかじめ使用することを想定してドライバを格納した特定のハードウェア以外のハードウェアを、機器に接続して駆動することができなかった。これに対して、上述の実施の形態1における組み込みOSがインストールされた機器およびこの機器におけるドライバの実行方法では、特定のハードウェア以外の追加のハードウェアの追加ドライバ13はアプリケーション14に保持され、追加のハードウェアの固有情報はドライバリスト11に記述される。そのため、接続された追加のハードウェアの固有情報がドライバリスト11に記述されている場合には、追加のハードウェアは駆動を許可され、アプリケーション14が保持する追加ドライバ11を用いて追加のハードウェアは駆動される。その結果、追加ドライバ13を保持するアプリケーション14およびドライバリスト11を書き換え可能な記憶装置に格納することにより、ドライバが格納された特定のハードウェア以外の追加のハードウェアであっても、機器1に接続して使用することができる。このように、実施の形態1に係る機器1およびドライバの実行方法は、OS7およびドライバ8の組み込み時に接続を予定していなかった追加のハードウェアを接続して使用できるようになり、出荷時のドライバの有無に関わらず、接続するハードウェアの選択を自由に行うことができるようになる。また、特定ドライバ9を格納していた特定のハードウェアであっても、対応するドライバが更新される時がある。この場合でも、実施の形態1に係る機器1およびドライバの実行方法は、更新されたドライバをアプリケーション14に追加ドライバ13として格納することにより、ドライバの更新された特定のハードウェアを継続して使用することができる。
【0036】
なお、機器1がアプリケーション14を実行する際に接続が許可された追加のハードウェア
がアクセスするメモリの領域やI/O等のリソースをあらかじめ特定しておき、仮ドライバ10によって、追加のハードウェア
がアクセスできるリソースを制限するようにすることもできる。これにより、アクセスできるリソース以外のリソースに対して追加のハードウェア
がアクセスすることを防止でき、アプリケーション14の不正な動作や、追加のハードウェアの不具合等により、不適切な動作やデータの書き換えが行われ、リソース等に障害が生じることを防止することができる。
例えば、アプリケーションが、汎用ドライバにSystem ROM消去命令を実行する不正なI/Oアクセスを要求した場合で、I/Oアクセスの制限が行われていない場合、OSが格納されたSystem ROMが消去され、その後、機器1は動作しない状況に陥る。
【0037】
これに対して、致命的な不具合を発生させる可能性のあるリソースへのI/Oアクセスの制限を行っている場合、不正な処理はドライバ内で阻止され、機器やハードウェアの保護が可能となる。
(実施の形態2)
次に、
図1〜
図3を用いて、実施の形態2における組み込みOSがインストールされた機器およびこの機器におけるドライバの実行方法について説明する。
【0038】
図3は実施の形態2における暗号化キーを用いた処理を行う構成を示す概略図である。
図1〜
図3に示すように、実施の形態2における組み込みOSがインストールされた機器19は、実施の形態1における組み込みOSがインストールされた機器1において、アプリケーション18としてアプリケーション14に暗号化キー15をさらに加えて、追加のハードウェア16にも暗号化キー15と同一の暗号化キー17をさらに保持させる。ここで、
図3において、アプリケーション18,仮ドライバ10,追加のハードウェア16以外の構成は、
図1における機器1の構成と同様で有り、図示を省略している。このような構成の機器19において、
図2のステップ5における固有情報の比較の際に、アプリケーション18が保持する暗号化キー15と追加のハードウェア16が保持する暗号化キー17とを比較する。そして、暗号化キー15,17が一致した場合のみ、追加のハードウェア16を使用する許可を出すようにする。つまり、固有情報が一致したとしても、暗号化キー15,17が一致しない場合は、追加のハードウェア16を使用する許可を出さない。これにより、追加のハードウェア16が保持する暗号化キー17と同一の暗号化キー15を保持するアプリケーション18のみを実行させることができ、意図しないアプリケーションからの追加のハードウェア16の使用を回避することができる。
【0039】
以下、
図1〜
図9を用いて、実施の形態1の機器1および実施の形態2の機器19の具体的な構成を例示する。
機器1や機器19は、例えば、工場のラインにおいて、センサの解析装置や各種検査装置、空冷用ファンの制御装置等に用いられる。また、機器1,19に接続されるハードウェアとしては、デジタルI/OやAD/DAコンバータ、シリアル通信デバイス,センサ,アクチュエータ等が用いられる。
【0040】
工場のセンサの解析装置は、機器1,19にハードウェアとしてセンサが接続された構成であり、センサによって工場のラインで生産される製品の数量や品質データ等を取得し、機器1,19でデータ解析、その他の処理を行う。
【0041】
図4はセンサ解析装置の初期設計時の構成例で、仮ドライバ10はセンサ解析装置に組み込まれているが、使用されていない状態である。
図4の構成例に対して、例えば新製品の生産のために、工場のラインに変更を加え、センサが変更された構成例を
図5に示す。
この構成例では、アプリケーション14の追加、及び、
図4における温度センサ24を赤外線センサ25へ変更することで、従来では生産できなかった新製品の生産への対応が行えるようになる。
【0042】
工場の検査装置は、機器1,19にハードウェアとして検査用ツールが接続された構成であり、検査用ツールで取得したデータを読み込み、機器1,19でデータ解析して検査の判定を行う。
【0043】
図6は検査装置の初期設計時の構成例で、ここでの検査対象26はコンピュータを想定しており、各種デバイス(LAN,USB,Audio,COM)を搭載している。検査装置は、これらの各種デバイスに対して検査を行う。
図6の構成例に対して、GPIBデバイスを搭載したコンピュータである新検査対象27を追加する場合の構成例を
図7に示す。
【0044】
この構成例では、アプリケーション14の追加、及び、検査用ツール33を新検査用ツール28へ変更することで、従来では検査できなかった新製品の検査ができるようになる。なお、新検査ツール28への変更は、検査対象27に対してGPIBデバイスを追加で搭載することで可能となる。
【0045】
空冷用ファンの制御装置は、機器1,19にハードウェアとして温度センサとファンが接続された構成であり、冷却対象に温度センサを設置し、測定した温度を解析して、冷却対象を冷却するファンの風量の増減,稼動/停止を制御する。
【0046】
図8は空冷用ファンの制御装置の初期設計時の構成例で、仮ドライバ10はセンサ解析装置に組み込まれているが、使用されていない状態である。
図8の構成例に対して、より性能の良い冷却対象に変更し、温度センサ29、ファン30を温度センサ31、ファン32変更した構成例を
図9に示す。
【0047】
この構成例では、アプリケーション14の追加、温度センサ29とファン30を新温度センサ31、新ファン32へ変更することで、工場内の冷却対象の性能向上に伴い消費電力が増加し、発熱量が増加する場合に、ファンの排熱能力を向上させ、冷却対象を正常に動作させることができる。
【0048】
このような機器1,19において、接続するハードウェアを変更する事情が生じた場合で、機器1,19にそのハードウェアに対応するドライバが格納されていない場合でも、アプリケーション14,18に追加ドライバ13を保持させ、接続する追加のハードウェア16の固有情報をドライバリスト11に記載することにより、適切な追加のハードウェア16が接続されたことを確認して追加のハードウェア16の使用を許可し、アプリケーション14,18が保持する追加ドライバ13により追加のハードウェア16を駆動させることができるため、組み込みOSがインストールされた機器においても、新たに接続される追加のハードウェア16を接続して使用することができる。
(実施の形態3)
次に、
図2,
図12〜
図13を用いて、実施の形態3における組み込みOSがインストールされた機器およびこの機器におけるドライバの実行方法について説明する。
【0049】
図12は実施の形態3における組み込みOSがインストールされた機器の構成を示す概略図、
図13は実施の形態3におけるドライバの実行方法の概略フローを示す図である。
実施の形態3における組み込みOSがインストールされた機器およびこの機器におけるドライバの実行方法は、実施の形態1,2において、アプリケーションが追加のハードウェアにアクセスする度に固有情報の比較を行っていたのに対し、あらかじめ記録されたアクセス許可されたハードウェアの固有情報と、接続されたハードウェアの固有情報との比較を1度だけ行うことを特徴とする。そのため、実施の形態1,2のドライバの実行方法および機器に対し、アクセス許可リストをさらに備える点が異なる。アクセス許可リストは、あらかじめ記録されたアクセス許可されたハードウェアの固有情報と、接続されたハードウェアの固有情報との比較を行った結果、一致した場合にその固有情報を記録する。
【0050】
以下、実施の形態1,2と異なる部分を中心に説明し、その他の説明は省略する。
図12における本実施の形態の機器20は、
図1に示す実施の形態1,2の機器1に対して、アクセス許可リスト21をさらに設ける点がことなる。なお、
図12においては、ドライバリストを設けず、アプリケーション22が追加を許可する追加のハードウェアの固有情報23を保持する構成を示し、以下この構成について説明する。
【0051】
アクセス許可リスト21は、RAM24等の書き換え可能な記憶装置に格納される。アクセス許可リスト21には、機器20に接続された追加のハードウェアから取得した固有情報と、アプリケーション22に保持された固有情報23とを比較し、一致した場合にその固有情報が書き込まれる。つまり、最初にアプリケーションが追加のハードウェアにアクセスしようとした時に、機器20に接続されているハードウェアが、アクセス許可された追加のハードウェアか否かを確認するために、機器20に接続された追加のハードウェアから取得した固有情報と、アプリケーション22に保持された固有情報23とを比較したときに、一致した固有情報がアクセス許可リスト21に書き込まれる。
【0052】
CPU2は、アプリケーション22が追加のハードウェアにアクセスされた場合、アクセス許可リスト21を読み込み、アクセス許可リスト21にアプリケーション22に保持された固有情報23が書き込まれているかどうかを確認し、書き込まれている場合は、追加のハードウェアの動作を許可する。書き込まれていない場合は、機器20に接続された追加のハードウェアから取得した固有情報と、アプリケーション22に保持された固有情報23とを比較し、一致した場合にのみ、追加のハードウェアの動作を許可する。
【0053】
これ以外の構成は、実施の形態1,2と同様であり、説明を省略する。
次に、実施の形態3における
図12に示す機器を用いたドライバの実行方法について、
図2,
図12,
図13を用いて説明する。
【0054】
まず、
図2に示す実施の形態1,2のドライバの実行方法と同様に、特定ドライバが接続されている場合には、ドライバ9を実行して接続された特定のハードウェアを駆動する(
図2のステップ1〜3)。
【0055】
次に、実施の形態1,2のドライバの実行方法と同様に接続された追加のハードウェアが、アプリケーションがアクセスすることを許可するものかどうかを確認する。実施の形態1,2のドライバの実行方法では、アプリケーションが追加のハードウェアにアクセスする毎に、あらかじめ記憶した固有情報と追加のアプリケーションの固有情報とを比較したが(
図2のステップ4以降)、本実施の形態では、アクセス許可リスト21を用いる。
【0056】
以下、
図2のステップ5以降に代わる工程について、
図13を用いて説明する。
まず、アプリケーション22は、追加のハードウェアにアクセスする場合、あらかじめ記憶したアクセスしようとする追加のハードウェアの固有情報がアクセス許可リスト21に書き込まれているかどうかを確認する(ステップ11)。固有情報が、許可リスト21に書き込まれている固有情報と一致する場合は、
図2のステップ7,8と同様に追加のハードウェアを動作させる(ステップ12)。アクセス許可リスト21に対応する固有情報が書き込まれていない場合、あらかじめ記憶した固有情報と、接続された追加のハードウェアの固有情報とを比較する(ステップ13)。一致しない場合は、追加のハードウェアを動作させない(ステップ13)。一致する場合は、その固有情報をアクセス許可リスト21に書き込むと共に(ステップ15)、ステップ12と同様に追加のハードウェアを動作させる(ステップ16)。
【0057】
このように本実施の形態のドライバの実行方法では、まず、アプリケーション22が最初に追加のハードウェアにアクセスする時は、あらかじめアクセスを許可された追加のハードウェアの固有情報と、接続された追加のハードウェアの固有情報を比較する。そして、一致する場合は、追加のハードウェアを駆動してアプリケーション22を動作させると共に、アクセス許可リスト21に一致した固有情報を書き込む。その後、アプリケーションが追加のハードウェアにアクセスする時は、接続された追加のハードウェアの固有情報を確認することなく、アプリケーション22がアクセスしようとする追加のハードウェアの固有情報と、アクセス許可リスト21に記録された固有情報とを比較し、アプリケーション22が継続して同じ追加のハードウェアにアクセスしていることを確認し、追加のハードウェアを駆動してアプリケーション22を動作させる。これにより、アプリケーション22が追加のハードウェアにアクセスする度に、追加のハードウェアから固有情報を取得する必要がなくなり、処理が簡便になり、処理速度も向上する。
【0058】
なお、上記説明では、ドライバリストを用いない場合を例に説明したが、実施の形態1,2のように、あらかじめアプリケーションがアクセスすることを許可する追加のハードウェアの固有情報が記録されたドライバリストを用いることもできる。
【0059】
さらに、上記各実施の形態において、接続された追加のハードウェアの固有情報を記憶する、接続リストを設けても良い。固有情報の比較の際に、接続リストに記憶された固有情報を用いることにより、比較の度に追加のハードウェアから固有情報を取得する必要がなくなり、処理が簡便になり、処理速度も向上する。なお、接続された追加のハードウェアの固有情報の取得は、追加のハードウェアが接続された状態で機器に電源が投入された際や、電源が投入されている機器に追加のハードウェアを接続してプラグ&プレイされた時等の、機器が最初に追加のハードウェアを認識した時に行うことができる。この取得した固有情報が接続リストに記憶される。