(57)【特許請求の範囲】
【請求項１】
装置に搭載されたＯＳと、装置に搭載されたデバイスを制御するプログラムであるドライバと、装置のアドレス割付情報を含むデバイス情報とＯＳの種別とＯＳの版数を含むＯＳ情報とを含むシステムマッピング情報と、ＯＳとドライバとの間の情報の伝達を仲介し制御するインタフェース部とを有し、
前記インタフェース部は、対応するＯＳの種類毎にＯＳとのインターフェース手段を有するＯＳインタフェース処理部と、装置に搭載されたＯＳに対応した前記インターフェース手段と前記システムマッピング情報に基づいてドライバの登録情報を編集しＯＳへ登録するドライバ登録処理部とを有し、
アプリケーションソフトからＯＳを介して要求を受けると、前記システムマッピング情報を参照してドライバへ要求を伝達することを特徴とするデバイスドライバの組み込み・実行方式。
【請求項２】
装置に搭載されたＯＳと、装置に搭載されたデバイスを制御するプログラムであるドライバと、装置のアドレス割付情報を含むデバイス情報とＯＳの種別とＯＳの版数を含むＯＳ情報とを含むシステムマッピング情報と、ＯＳとドライバとの間の情報の伝達を仲介し制御するインタフェース部とを有し、
前記インタフェース部は、対応するＯＳの種類毎にＯＳとのインターフェース手段を有するＯＳインタフェース処理部と、装置に搭載されたＯＳに対応した前記インターフェース手段と前記システムマッピング情報に基づいてドライバの登録情報を編集しＯＳへ登録するドライバ登録処理部とを有し、
アプリケーションソフトからＯＳを介して要求を受けると、前記アドレス割付情報を付加して要求をドライバに送り、前記ドライバは受け付けた要求とアドレス割付情報に従って要求を処理することを特徴とするデバイスドライバの組み込み・実行方式。
【請求項３】
前記インターフェース部は、システムの開始或いは再開の際のＯＳからの起動により前記システムマッピング情報を補助記憶装置から主記憶装置にロードし前記ドライバ登録処理部を起動してドライバを登録させる初期設定処理部を有することを特徴とする請求項１又は２のデバイスドライバの組み込み・実行方式。
【請求項４】
前記インターフェース部は、システムの開始或いは再開の際のＯＳからの起動により前記システムマッピング情報を前記装置とネットワークで接続するサーバから前記装置内の主記憶装置にロードし前記ドライバ登録処理部を起動してドライバを登録させる初期設定処理部を有することを特徴とする請求項１又は２のデバイスドライバの組み込み・実行方式。
【請求項５】
装置のアドレス割付情報を含むデバイス情報とＯＳの種別と版数を含むＯＳ情報とを含むシステムマッピング情報に基づいて複数用意されたＯＳとのインターフェース手段を選択し、装置に搭載されたＯＳに対応した前記インターフェース手段と前記システムマッピング情報に基づいて装置に搭載されたデバイスを制御するプログラムであるドライバの登録情報を編集しＯＳへ登録し、アプリケーションソフトからＯＳを介して要求を受けると、前記システムマッピング情報を参照して必要な情報を付加しドライバへ要求を伝達することを特徴とするデバイスドライバの組み込み・実行方法。
【請求項６】
装置のアドレス割付情報を含むデバイス情報とＯＳの種別と版数を含むＯＳ情報とを含むシステムマッピング情報に基づいて複数用意されたＯＳとのインターフェース手段を選択し、装置に搭載されたＯＳに対応した前記インターフェース手段と前記システムマッピング情報に基づいて装置に搭載されたデバイスを制御するプログラムであるドライバの登録情報を編集しＯＳへ登録し、アプリケーションソフトからＯＳを介して要求を受けると、前記アドレス割付情報を付加して要求をドライバに送り、前記ドライバは受け付けた要求とアドレス割付情報に従って要求を処理することを特徴とするデバイスドライバの組み込み・実行方法。
【請求項７】
システムの開始或いは再開の際に前記ＯＳからの起動により前記システムマッピング情報を前記装置内の補助記憶装置から前記装置内の主記憶装置にロードすることを特徴とする請求項５又は６のデバイスドライバの組み込み・実行方法。
【請求項８】
システムの開始或いは再開の際に前記ＯＳからの起動により前記システムマッピング情報を前記装置とネットワークで接続するサーバから前記装置内の主記憶装置にロードすることを特徴とする請求項５又は６のデバイスドライバの組み込み・実行方法。
【請求項９】
装置のアドレス割付情報を含むデバイス情報とＯＳの種別と版数を含むＯＳ情報とを含むシステムマッピング情報に基づいて複数用意されたＯＳとのインターフェース手段を選択する手順と、装置に搭載されたＯＳに対応した前記インターフェース手段と前記システムマッピング情報に基づいて装置に搭載されたデバイスを制御するプログラムであるドライバの登録情報を編集しＯＳへ登録する手順と、アプリケーションソフトからＯＳを介して要求を受けると、前記システムマッピング情報を参照して必要な情報を付加しドライバへ要求を伝達する手順とをコンピュータに実行させるプログラム。
【請求項１０】
装置のアドレス割付情報を含むデバイス情報とＯＳの種別と版数を含むＯＳ情報とを含むシステムマッピング情報に基づいて複数用意されたＯＳとのインターフェース手段を選択する手順と、装置に搭載されたＯＳに対応した前記インターフェース手段と前記システムマッピング情報に基づいて装置に搭載されたデバイスを制御するプログラムであるドライバの登録情報を編集しＯＳへ登録する手順と、アプリケーションソフトからＯＳを介して要求を受けると、前記アドレス割付情報を付加して要求をドライバに送る手順と、前記ドライバが受け付けた要求とアドレス割付情報に従って要求を処理する手順とをコンピュータに実行させるプログラム。
【請求項１１】
システムの開始或いは再開の際に前記ＯＳからの起動により前記システムマッピング情報を前記装置内の補助記憶装置から前記装置内の主記憶装置にロードする手順とをコンピュータに実行させる請求項９又は１０のプログラム。
【請求項１２】
システムの開始或いは再開の際に前記ＯＳからの起動により前記システムマッピング情報を前記装置とネットワークで接続するサーバから前記装置内の主記憶装置にロードする手順とをコンピュータに実行させる請求項９又は１０のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデバイスドライバの組み込み・実行方式、組み込み・実行方法、及びプログラムに関し、特に多数の装置やＯＳに対応したデバイスを装置に組み込む際に必要なドライバをデバイスについて１種類とし装置やＯＳに関する使用の差分を吸収するためのモジュールと合わせて装置に組み込むようにしたデバイスドライバの組み込み・実行技術に関する。
【０００２】
【従来の技術】
情報処理装置に実装又は接続して使用するデバイスの製造業者は自社のデバイス製品を制御するためのプログラムであるドライバを製品とともに提供し、利用者はそれを情報処理装置のオペレーティングシステム（ＯＳという）に組み込んで使用する。従って、製造業者はデバイス製品を販売するために多くのＯＳの種類・版数（バージョンともいう）や実装又は接続する装置に合わせてドライバを複数種類用意している。
【０００３】
このため、多く使用されていないＯＳ用のドライバは用意されていなかったり用意が遅れたりすることが起こりやすく、どうしても使用したい場合は利用者が自らドライバを作成する必要があった。デバイス製造業者は少数使用のＯＳや装置に対してはデバイスの販売機会を失ってしまうことが多かった。
【０００４】
【発明が解決しようとする課題】
第１の問題点は、従来のドライバはＯＳに依存したドライバの構成となっているため、各種のＯＳ毎に適した多くのドライバを開発する必要があったということである。
【０００５】
第２の問題点は、種々の本体装置を開発している本体製造業者は同一デバイスであっても本体装置毎にＩ／Ｏアドレス等のマッピング条件が異なることがあり、そのような場合には本体装置毎にドライバをカスタマイズしてＩ／Ｏアドレスを合わせる必要があったということである。
【０００６】
本発明の目的は、ＯＳとドライバとの間にインタフェース部を設けて多種類のＯＳや装置に対する差分を吸収することにより、１つのデバイスに１つのドライバを用意するだけでドライバを組み込み可能としたデバイスドライバの組み込み方式、組み込み方法、プログラムを提供することにある。
【０００７】
【課題を解決するための手段】
本発明の第１のデバイスドライバの組み込み・実行方式は、装置に搭載されたオペーレーティングシステム（ＯＳという）と、装置に搭載されたデバイスを制御するプログラムであるドライバと、装置のアドレス割付情報を含むデバイス情報とＯＳの種別と版数を含むＯＳ情報とを含むシステムマッピング情報と、ＯＳとドライバとの間の情報の伝達を仲介し制御するインタフェース部とを有し、
前記インタフェース部は、前記システムマッピング情報を参照してドライバを登録し前記システムマッピング情報を参照してドライバへ要求を伝達することを特徴とする。
【０００８】
本発明の第２のデバイスドライバの組み込み・実行方式は、装置に搭載されたＯＳと、装置に搭載されたデバイスを制御するプログラムであるドライバと、装置のアドレス割付情報を含むデバイス情報とＯＳの種別とＯＳの版数を含むＯＳ情報とを含むシステムマッピング情報と、ＯＳとドライバとの間の情報の伝達を仲介し制御するインタフェース部とを有し、
前記インタフェース部は、対応するＯＳの種類毎にＯＳとのインターフェース手段を有するＯＳインタフェース処理部と、前記システムマッピング情報に基づいてドライバの登録情報を編集しＯＳへ登録するドライバ登録処理部とを有し、前記システムマッピング情報を参照してドライバへ要求を伝達することを特徴とする。
【０００９】
本発明の第３のデバイスドライバの組み込み・実行方式は、装置に搭載されたＯＳと、装置に搭載されたデバイスを制御するプログラムであるドライバと、装置のアドレス割付情報を含むデバイス情報とＯＳの種別とＯＳの版数を含むＯＳ情報とを含むシステムマッピング情報と、ＯＳとドライバとの間の情報の伝達を仲介し制御するインタフェース部とを有し、
前記インタフェース部は、対応するＯＳの種類毎にＯＳとのインターフェース手段を有するＯＳインタフェース処理部と、前記システムマッピング情報に基づいてドライバの登録情報を編集しＯＳへ登録するドライバ登録処理部とを有し、ＯＳからドライバへの要求を受けると前記アドレス割付情報を付加して要求をドライバに送り、
前記ドライバは受け付けた要求とアドレス割付情報に従って要求を処理することを特徴とする。
【００１０】
本発明の第４のデバイスドライバの組み込み・実行方式は、第１、第２、又は第３のデバイスドライバの組み込み・実行方式において、前記インターフェース部は、システムの開始或いは再開の際のＯＳからの起動により前記システムマッピング情報を補助記憶装置から主記憶装置にロードし前記ドライバ登録処理部を起動してドライバを登録させる初期設定処理部を有することを特徴とする。
【００１１】
本発明の第５のデバイスドライバの組み込み・実行方式は、第１、第２、又は第３のデバイスドライバの組み込み・実行方式において、前記インターフェース部は、システムの開始或いは再開の際のＯＳからの起動により前記システムマッピング情報を前記装置とネットワークで接続するサーバから前記装置内の主記憶装置にロードし前記ドライバ登録処理部を起動してドライバを登録させる初期設定処理部を有することを特徴とする。
【００１２】
本発明の第１のデバイスドライバの組み込み・実行方法は、装置のアドレス割付情報を含むデバイス情報とＯＳの種別と版数を含むＯＳ情報とを含むシステムマッピング情報に基づいて装置に搭載されたデバイスを制御するプログラムであるドライバをＯＳに登録し、ＯＳからの要求を受けると前記システムマッピング情報を参照して必要な情報を付加しドライバへ要求を伝達することを特徴とする。
【００１３】
本発明の第２のデバイスドライバの組み込み・実行方法は、装置のアドレス割付情報を含むデバイス情報とＯＳの種別と版数を含むＯＳ情報とを含むシステムマッピング情報に基づいて複数用意されたＯＳとのインターフェース手段を選択し、前記システムマッピング情報に基づいて装置に搭載されたデバイスを制御するプログラムであるドライバの登録情報を編集しＯＳへ登録し、ＯＳからの要求を受けると前記システムマッピング情報を参照して必要な情報を付加しドライバへ要求を伝達することを特徴とする。
【００１４】
本発明の第３のデバイスドライバの組み込み・実行方法は、装置のアドレス割付情報を含むデバイス情報とＯＳの種別と版数を含むＯＳ情報とを含むシステムマッピング情報に基づいて複数用意されたＯＳとのインターフェース手段を選択し、前記システムマッピング情報に基づいて装置に搭載されたデバイスを制御するプログラムであるドライバの登録情報を編集しＯＳへ登録し、ＯＳからドライバへの要求を受けると前記アドレス割付情報を付加して要求をドライバに送り、前記ドライバは受け付けた要求とアドレス割付情報に従って要求を処理することを特徴とする。
【００１５】
本発明の第４のデバイスドライバの組み込み・実行方法は、第１、第２、又は第３のデバイスドライバの組み込み・実行方法において、システムの開始或いは再開の際に前記ＯＳからの起動により前記システムマッピング情報を前記装置内の補助記憶装置から前記装置内の主記憶装置にロードすることを特徴とする。
【００１６】
本発明の第５のデバイスドライバの組み込み・実行方法は、第１、第２、又は第３のデバイスドライバの組み込み・実行方法において、システムの開始或いは再開の際に前記ＯＳからの起動により前記システムマッピング情報を前記装置とネットワークで接続するサーバから前記装置内の主記憶装置にロードすることを特徴とする。
【００１７】
本発明の第１のプログラムは、装置のアドレス割付情報を含むデバイス情報とＯＳの種別と版数を含むＯＳ情報とを含むシステムマッピング情報に基づいて装置に搭載されたデバイスを制御するプログラムであるドライバをＯＳに登録する手順と、ＯＳからの要求を受けると前記システムマッピング情報を参照して必要な情報を付加しドライバへ要求を伝達する手順とをコンピュータに実行させる。
【００１８】
本発明の第２のプログラムは、装置のアドレス割付情報を含むデバイス情報とＯＳの種別と版数を含むＯＳ情報とを含むシステムマッピング情報に基づいて複数用意されたＯＳとのインターフェース手段を選択する手順と、前記システムマッピング情報に基づいて装置に搭載されたデバイスを制御するプログラムであるドライバの登録情報を編集しＯＳへ登録する手順と、ＯＳからの要求を受けると前記システムマッピング情報を参照して必要な情報を付加しドライバへ要求を伝達する手順とをコンピュータに実行させる。
【００１９】
本発明の第３のプログラムは、装置のアドレス割付情報を含むデバイス情報とＯＳの種別と版数を含むＯＳ情報とを含むシステムマッピング情報に基づいて複数用意されたＯＳとのインターフェース手段を選択する手順と、前記システムマッピング情報に基づいて装置に搭載されたデバイスを制御するプログラムであるドライバの登録情報を編集しＯＳへ登録する手順と、ＯＳからドライバへの要求を受けると前記アドレス割付情報を付加して要求をドライバに送る手順と、前記ドライバが受け付けた要求とアドレス割付情報に従って要求を処理する手順とをコンピュータに実行させる。
【００２０】
本発明の第４のプログラムは、第１、第２、又は第３のプログラムにおいて、システムの開始或いは再開の際に前記ＯＳからの起動により前記システムマッピング情報を前記装置内の補助記憶装置から前記装置内の主記憶装置にロードする手順とをコンピュータに実行させる。
【００２１】
本発明の第５のプログラムは、第１、第２、又は第３のプログラムにおいて、システムの開始或いは再開の際に前記ＯＳからの起動により前記システムマッピング情報を前記装置とネットワークで接続するサーバから前記装置内の主記憶装置にロードする手順とをコンピュータに実行させる。
【００２２】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
図１は本発明の第１の実施の形態の構成を示すブロック図である。図１を参照すると、第１の実施の形態の構成は、主記憶装置１０と、補助記憶装置２０と、デバイス３０を含み、図示しないがこれらはＣＰＵや入出力制御部やデバイス３０以外のデバイス等を含む情報処理装置に実装される。
【００２３】
主記憶装置１０は、補助記憶装置２０からブートプログラム２１によってシステムファイル２３からロードされるプログラムであるアプリケーションソフトのＡＰＬ１１、オペレーティングシステムのＯＳ４０、インタフェース部５０、ドライバ６０を含んでいる。なお、ドライバ６０は装置に接続されるデバイスに応じて用意される。
【００２４】
補助記憶装置２０は、通常磁気ディスク装置で実現され、ブートプログラム２１と、主記憶装置にロードされるシステムファイル２３と、システムマッピング情報２２とを含む。システムマッピング情報２２はデバイスの品名、情報処理装置内のアドレス割付情報、接続されるバス情報、割り込みポート等の情報を含むデバイス情報と、ＯＳの種別と版数とを含むＯＳ情報とを含む。
【００２５】
インタフェース部５０は種々のＯＳに対応するインタフェース機能を有し、ドライバに対して単一のインタフェースを提供する。また、補助記憶装置２０に格納されているシステムマッピング情報２２を読み出し、その情報をドライバ６０へ引き継ぐ機能を備えている。ドライバ６０はインタフェース部５０から引き継いだ情報を基にＯＳ４０からの指示に従ってデバイス３０の制御を実行する。
【００２６】
図２はインタフェース部５０の構成を示す図である。インタフェース部５０は、初期設定処理を行う初期設定処理部５１と、ＯＳインタフェース処理部５２と、リソース確保解放処理部５３と、ドライバ登録処理部５４と、システムマッピング情報２２の保持、読み出しを行うシステムマッピング情報処理部５５と、ドライバ６０とのインタフェース動作を処理するドライバインタフェース処理部５６とを含む。
【００２７】
ＯＳインタフェース処理部５２は、ＯＳ４０からのコールを受けたりＯＳ４０へのシステムコールを行ったりするＯＳインターフェース機能（図２では１〜ｎ）をＯＳの種類に応じて備え、他種類のＯＳへの対応が可能であり、システムマッピング情報に基づいて使用されるＯＳインタフェース機能が選択される。
【００２８】
リソース確保解放処理部５３は、ドライバ６０が必要とするリソースの確保と解放をＯＳインタフェース処理部５２を介してＯＳ４０との間で調整しながら行うプログラムである。ドライバ登録処理部５４は、ドライバ６０に用意されている関数アドレス情報を有しシステムマッピング情報に基づいて登録情報を編集しドライバの登録、デバイスの登録、割り込みハンドラの登録をＯＳインタフェース処理部５２を介して行う。
【００２９】
次に本発明の第１の実施の形態の動作を図面を参照して説明する。
まず、システム開始・再開時の処理について、図３のフローチャートを参照して説明する。
【００３０】
補助記憶装置２０に格納されているブートプログラム２１は、システムの開始又は再開時に発行されるリセットにより起動される（Ｓ７１）。起動されたブートプログラム２１はＡＰＬ１１、ＯＳ４０、インタフェース部５０、ドライバ６０を含むシステムファイル２３を主記憶装置１０へロードする（Ｓ７２）。ブートプログラム２１はシステムファイルロード後にＯＳ４０を起動する（Ｓ７３）。
【００３１】
ＯＳ４０はシステムに必要な初期化処理を起動するとともに、インタフェース部５０を起動する（Ｓ７４）。インタフェース部５０の起動は初期設定処理部５１をコールすることにより実行され、初期設定処理部５１はドライバ６０を初期化するための初期設定処理を実行する。
【００３２】
次に、初期設定処理部５１の動作について図４のフローチャートを参照して説明する。初期設定処理部５１はインタフェース部５０で使用するフラグ、ポインタ等の変数の初期化を行い（Ｓ７６）、補助記憶装置２０からデバイス情報とＯＳ情報を含むシステムマッピング情報２２を読み出してシステムマッピング情報処理部５５へ渡す（Ｓ７７）。
【００３３】
次に初期設定処理部５１はインタフェース部５０で必要とするリソースの確保をリソース確保解放処理部５３へ要求する（Ｓ７８）。リソース確保解放処理部５３はシステムマッピング情報処理部５５からＯＳの種別とＯＳの版数を含むＯＳ情報を取得しＯＳインタフェース処理部５２へ引き継いでＯＳ４０に対応したリソース確保のシステムコールを要求する（Ｓ７８）。ＯＳインタフェース処理部５２は引き継いだＯＳの種別・版数を記憶し、以後の処理は引き継いだＯＳの種別・版数に対応したＯＳインタフェース（１〜ｎのいずれか）にて行う。
【００３４】
次に初期設定処理部５１はドライバ登録処理部５４をコールする。ドライバ登録処理部５４はシステムマッピング情報処理部５５からデバイスの品名、装置内のアドレス割付、接続されるバス、割り込みポート等のデバイス情報と、ＯＳの種別やＯＳの版数等のＯＳ情報を取得し、これらの情報に基づいて登録する装置とＯＳに対応するようドライバ登録情報の編集を行いＯＳインタフェース処理部５２へドライバ登録処理を要求する（Ｓ７９）。
【００３５】
この際に、ドライバ登録とは別にデバイスの登録が必要なＯＳの場合にはデバイス登録をＯＳインタフェース処理部５２へ要求する。また、割り込みハンドラ登録が必要な場合はＯＳインタフェース処理部５２へ割り込みハンドラ登録処理を要求するが説明は省略する。登録する割り込みハンドラはドライバインタフェース処理部５６に用意されている。
【００３６】
次にＯＳ種別によって異なるドライバの登録動作を説明する図５、図６、図７を参照して詳細に説明する。図５、図６はドライバ登録とデバイス登録を別々に行う方式のＯＳの種別（ＯＳ−Ａとする）について示した図であり、図５はドライバ登録の動作を、図６はデバイス登録の動作をそれぞれ示している。図７にはドライバ登録と同時にデバイス登録を行う方式の種別のＯＳ（ＯＳ−Ｂとする）の登録動作について示している。なお、便宜的に登録するデバイス３０をデバイスＣ、ドライバをドライバＣとする。
【００３７】
図５を参照すると、ドライバ登録処理部５４がシステムマッピング情報処理部５５より取得したシステムマッピング情報を基にＯＳ種別をＯＳ−Ａと認識し、ＯＳ−Ａとしてドライバ登録に必要なドライバ関数テーブル５７１を編集し、ドライバ関数テーブル５７１のアドレスを入力としてＯＳインタフェース処理部５２へドライバ登録のシステムコールを依頼する。
【００３８】
ＯＳインタフェース処理部５２はドライバ登録処理部５４から引き継いだドライバ関数テーブル５７１のアドレスを入力としてＯＳ４０（ＯＳ−Ａ、Ｉ／Ｏシステム管理）にあるデバイスドライバインストール関数４１をコールする。デバイスドライバインストール関数４１はドライバ管理テーブル４２へドライバ関数テーブル５７１のアドレスを含む情報をデバイスドライバＣ登録情報として登録し、ドライバ登録番号をドライバ登録処理部５４まで返却してドライバの登録動作が完了する。
【００３９】
次にデバイス登録野動作について図６を参照して説明する。ドライバ登録完了後、ドライバ登録処理部５４は、デバイスディスクリプタアドレスやデバイス名等をシステムマッピング情報のデバイス情報に基づいて編集し、ドライバの登録処理で取得したドライバ登録番号と合わせてデバイスＣ登録情報５７２を生成し、ＯＳインタフェース処理部５２へデバイス登録を要求する。
【００４０】
ＯＳインタフェース処理部５２はドライバ登録処理部５４からデバイスＣ登録情報５７２を引き継いでＯＳ４０（ＯＳ−Ａ、Ｉ／Ｏシステム管理）のデバイス登録関数４３をコールする。デバイス登録関数４３はデバイスリスト４４へデバイスＣ登録情報５７２を登録する。以後ＯＳは管理テーブル４２とデバイスリスト４４を参照してデバイス３０を制御し使用する。
【００４１】
次に、ドライバ登録と同時にデバイス登録を行う方式の種別のＯＳ（ＯＳ−Ｂ）の登録動作について図７を参照して説明する。ドライバ登録処理部５４はデバイスＣのデバイス制御ブロック長、装置情報（論理装置名、装置識別子、装置種別、装置状態で構成）、ドライバ情報（ドライバ名称、アドレス）、情報通知ＩＤ（情報通知用メッセージボックスＩＤ）からなるデバイスＣ制御ブロック５７５をシステムマッピング情報に基づいて編集し生成する。  ドライバ登録処理部５４は、さらに、デバイスＣ制御ブロックアドレス、同期タイプ、外部同期用メッセージボックスＩＤ、外部同期用メッセージ識別情報からなるデバイスＣ制御情報５７４をシステムマッピング情報に基づいて編集し生成してＯＳインタフェース処理部５２へドライバおよびデバイスＣの登録を要求する。
【００４２】
ＯＳインタフェース処理部５２はＯＳ４０（ＯＳ−Ｂ、Ｉ／Ｏシステム管理）のデバイス登録関数４５をコールする。デバイス登録関数４５はデバイス管理テーブル４６へドライバ情報とデバイスＣ制御情報を含んだデバイスＣ登録情報を登録する。以後ＯＳはデバイス管理テーブル４６を参照してデバイス３０を制御し使用する。
【００４３】
次に、実際にデバイスアクセス要求が発生した場合の動作について図８のフローチャートを参照して説明する。デバイスアクセス要求はＡＰＬ１１又はＯＳ４０の内部処理において発生し、発生するとＯＳ４０がインタフェース部５０をコールする（Ｓ８１）。
【００４４】
インタフェース部５０はＯＳ４０からコールされた要求に対して既に読み込み済みのシステムマッピング情報を参照してドライバ６０をコールする（Ｓ８２）。ＯＳ４０からのコールはＯＳインタフェース処理部５２にて受付け、ドライバインタフェース処理部５６にてドライバ６０をコールする。尚、ドライバインタフェース処理部５６は必要に応じてドライバコール時のリソース確保、復帰時のリソース解放をリソース確保解放処理部５３へ要求する。
【００４５】
インタフェース部５０からコールされたドライバ６０は要求と情報処理装置内のアドレス割付等のデバイス情報をもとにデバイス３０の制御を実行する。ドライバ６０はＯＳ４０の種別を意識せず、引き継がれたシステムマッピング情報をもとにデバイスのアドレスや割り込みポート、バス配下のＩＤ等を認識し、デバイス制御を実行する（Ｓ８３）。
【００４６】
このように、インタフェース部５０がＯＳの種別・版数に関する差分を吸収し、アドレス割付等の装置に関する情報を装置から取り出して供給するのでドライバ６０はＯＳや装置に依存する情報を予め組み込んでおく必要が無く、デバイスに対して１種類用意すればよい。
【００４７】
次に実際にデバイスアクセス要求が発生した場合の動作について、ＯＳ−Ａの場合を例に詳細に説明する。図９はＯＳ−Ａにおける動作について説明した図であり、Ｆ８４〜Ｆ８９は各構成要素間の情報の流れを示している。
【００４８】
まず、ＯＳ４０（ＯＳ−Ａ：Ｉ／Ｏシステム管理）にてデバイスＣへのアクセス要求が発生すると、ＯＳ４０は図６に示したデバイスリスト４４のデバイスＣ登録情報からドライバ登録番号により対応するデバイスドライバＣのドライバ関数テーブル５７１を認識し、図５に示したドライバ関数テーブル５７１からデバイスＣのデバイスクリエイト関数アドレスを取得する。
【００４９】
次にＯＳ４０（ＯＳ−Ａ、Ｉ／Ｏシステム管理）は取得したアドレスによりデバイスＣクリエイト関数５２１をコールする（Ｆ８４）。デバイスＣクリエイト関数５２１はＯＳ−Ａの場合、デバイスアクセス要求時にはデバイスの初期設定および運用パラメータの設定を行う規定であるものとし、デバイスの初期設定、運用パラメータ設定の要求と、システムマッピング情報に基づいたデバイスの装置内割付けアドレスを入力情報としてドライバインタフェース処理部５６をコールする（Ｆ８５）。
【００５０】
ドライバインタフェース処理部５６はデバイス３０の装置内割付けアドレスおよび実行結果詳細格納バッファ（図示しないが既にリソース確保されているバッファ）のアドレスを入力情報としてドライバ６０の初期設定関数６１をコールする（Ｆ８６）。
【００５１】
初期設定関数６１はデバイス３０の装置内割付アドレスをベースアドレスとしてデバイス３０の初期設定レジスタ３１へアクセスし、その後ステータスレジスタ３２をリードして初期状態を確認する（Ｆ８８）。初期設定関数６１は初期設定実行結果をリターン値（正常終了又は異常終了）としてドライバインタフェース処理部５６へ返却する（Ｆ８６）。尚、実行結果が異常終了の場合は実行結果の詳細を結果詳細格納バッファへ格納しておく。
【００５２】
次にドライバインタフェース処理部５６はデバイス３０の装置内割付けアドレス入力および実行結果詳細格納バッファのアドレスを入力情報としてドライバ６０の運用パラメータ設定関数６２をコールする（Ｆ８７）。運用パラメータ設定関数６２はデバイス３０の装置内割付アドレスをベースアドレスとしてデバイス３０のパラメータレジスタ群３３へ運用パラメータをライトした後リードチェックする（Ｆ８９）。
【００５３】
運用パラメータ設定関数６２は運用パラメータ設定結果をリターン値（正常終了又は異常終了）としてドライバインタフェース処理部５６へ返却する（Ｆ８７）。尚、実行結果が異常終了の場合は実行結果詳細を結果詳細格納バッファへ格納しておく。
【００５４】
次にドライバインタフェース処理部５６はデバイスクリエイト実行結果をリターン値（正常終了又は異常終了）としてＯＳインタフェース処理部５２のデバイスＣクリエイト関数５２１へ返却する（Ｆ８５）。デバイスＣクリエイト関数５２１はＯＳ−Ａで定義された形式で実行結果をＯＳ４０（ＯＳ−Ａ、Ｉ／Ｏシステム管理）へ返却する（Ｆ８４）。
【００５５】
次に本発明の第２の実施の形態について説明する。図１０は本発明の第２の実施の形態の構成を示した図である。第１の実施の形態ではドライバを登録する情報処理装置内の補助記憶装置２０にシステムファイル２３を格納する構成としたが、第２の実施の形態ではネットワーク２９を介して接続するファイルサーバ２７にシステムファイル２３を格納する構成としている点が異なる。
【００５６】
システムファイル２３の格納位置が第１の実施の形態と相違するが、システムファイル２３の機能や他の構成要素の機能は上記相違点を除けば同じであり、容易に理解できるので、構成・動作の全体の説明は省略し、相違点に関する部分の動作について説明する。なお、図１と図１０で同じ機能を有するものは同じ番号を付与している。
【００５７】
システム開始・再開時の動作において、図３を参照すると、ステップＳ７１に相当するステップではブートプログラム２６を起動する。ステップＳ７２に相当するステップではブートプログラム２６はネットワーク２９を介してファイルサーバ２７に格納されているシステムファイル２３を主記憶装置１０へロードする。以降の動作は第１の実施の形態と同じとなる。
【００５８】
第２の実施の形態では、図１０の情報処理装置がクライアント装置として多数ネットワーク２９に接続する構成で各クライアント装置に共通のドライバを登録する場合、システムファイル２３をクライアント装置それぞれに格納することなくファイルサーバ２７に格納するだけでよいので、システム全体でのファイルの使用効率がよいという特長がある。
【００５９】
【発明の効果】
第１の効果は１つのデバイスに対して種々のＯＳ毎に対応したドライバを用意する必要がなくなることである。従って、デバイスを供給するメーカはドライバの開発工数を著しく削減することができる。その理由は、ＯＳに依存する部分を制御するインタフェース部をＯＳとの間に置いたためである。
【００６０】
第２の効果は、１つのデバイスに対して種々の装置毎にドライバをカスタマイズする必要がなくなることである。その理由は、本体装置に依存する部分を制御するインタフェース部をＯＳとの間に置きアドレスマッピング等の読替を実行するようにしたためである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態の構成を示す図である。
【図２】本発明のインタフェース部５０の詳細な構成を示した図である。
【図３】本発明の第１の実施の形態のシステム開始・再開時の動作を示すフローチャートである。
【図４】本発明の第１の実施の形態の初期設定処理部５１の動作を示すフローチャートである。
【図５】本発明の第１の実施の形態のドライバ登録動作を説明するための図である。
【図６】本発明の第１の実施の形態のデバイス登録動作を説明するための図である。
【図７】本発明の第１の実施の形態のドライバ登録と同時にデバイス登録する動作を説明するための図である。
【図８】本発明の第１の実施の形態のデバイスアクセス要求の処理動作を示すフローチャートである。
【図９】本発明の第１の実施の形態のデバイスアクセス要求の処理動作を説明するための図である。
【図１０】本発明の第１の実施の形態の構成を示す図である。
【符号の説明】
１０    主記憶装置
１１    ＡＰＬ
２０    補助記憶装置
２１    ブートプログラム
２２    システムマッピング情報
２３    システムファイル
３０    デバイス
３１    初期設定レジスタ
３２    ステータスレジスタ
３３    パラメータレジスタ群
４０    ＯＳ
４１    デバイスドライバインストール関数
４２    ドライバ管理テーブル
４３    デバイス登録関数
４４    デバイスリスト
４５    デバイス登録関数
４６    デバイス管理テーブル
５０    インタフェース部
５１    初期設定処理部
５２    ＯＳインタフェース処理部
５３    リソース確保解放処理部
５４    ドライバ登録処理部
５５    システムマッピング情報処理部
５６    ドライバインタフェース処理部
６０    ドライバ
６１    初期設定関数
６２    運用パラメータ設定関数
【図１】
0004063573.tif 000002
【図２】
0004063573.tif 000003
【図３】
0004063573.tif 000004
【図４】
0004063573.tif 000005
【図５】
0004063573.tif 000006
【図６】
0004063573.tif 000007
【図７】
0004063573.tif 000008
【図８】
0004063573.tif 000009
【図９】
0004063573.tif 000010
【図１０】
0004063573.tif 000011