(57)【要約】コンピュータアプリケーションと、様々な周辺装置との間の伝達を提供する機能ドライバをインストールするための構成が、各周辺装置ごとにロードされるマスタドライバを用いる。該マスタドライバは、各々の該周辺装置の接続の通知を受け取り、最終的に、適切な機能ドライバをロードする。各機能ドライバは、（１）アプリケーションと伝達し合うインターフェース部と、（２）そのアプリケーションに関連付けられた前記周辺装置と伝達し合う周辺部と、を有する。装置が接続を切断される時には、その関連付けられた機能ドライバが通知され、応答して、該ドライバは、その周辺部の動作を中断し、そのインターフェース部の動作を保持する。
2009506426.tif 000002
【特許請求の範囲】
【請求項１】
ユーザアプリケーションと周辺装置機能との間の伝達のためのドライバシステムであって、
（Ａ）マスタドライバであって、
（１）周辺装置に関連する利用可能性の通知を受け取り、及び、
（２）周辺装置のための機能ドライバをインストールする
ことのための、マスタドライバと、
（Ｂ）前記機能ドライバであって、
（１）アプリケーションインターフェース部及び周辺インターフェース部であって、該インターフェース部は、ユーザアプリケーションと伝達し合い、且つ、該アプリケーションに対するｃｏｍポートを提供することからなる、アプリケーションインターフェース部及び周辺インターフェース部と、
（２）前記アプリケーションインターフェース部と、該アプリケーションに関連付けられたある周辺機能との間を伝達させる前記周辺インターフェース部
とを有することからなる、前記機能ドライバと、
（Ｃ）前記周辺装置の除去の通知を受け取る前記アプリケーションインターフェース部であって、応答して、前記周辺装置から該アプリケーションインターフェース部自身の接続を解いて、これにより、除去された周辺装置と伝達が行われた前記アプリケーションは、該アプリケーションからの伝達情報に対して適切な応答を提供するｃｏｍポートが依然として提供されていることからなる、前記アプリケーションインターフェース部
とを備える、ドライバシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の背景
発明の分野
本発明は、周辺装置をコンピュータに接続する仮想ポートに関し、特に、周辺装置が該コンピュータから接続を切断された時に、仮想シリアルポートを保持するデバイスドライバ構成に関する。
【背景技術】
【０００２】
背景情報
過去において、及び現在のある程度まで、「ｃｏｍポート」番号によって指定されたハードウェアシリアルポートを介して周辺装置がコンピュータに接続されてきた。これらの周辺装置を利用するソフトウェアアプリケーションは、ソフトウェアデバイスドライバを介してそれら周辺装置と伝達し合う。これらの周辺装置は、「ビルトイン（組み込み）」と呼ばれる。何故ならば、システムが動作中の間、システムは、該装置のプラグ接続か又はプラグ非接続（該装置を抜くこと）に応答しないことになるからである。
【０００３】
更に最近では、「ホット・プラグ接続可能な」装置が、ＵＳＢ（ユニバーサルシリアルバス）ハードウェアポートを介して、及びマイクロソフト社によって販売されているＷｉｎｄｏｗｓ２０００（登録商標）システム及びＷｉｎｄｏｗｓＸＰ（登録商標）システムのようなオペレーティングシステムに含まれている「プラグ−Ｎ−プレイ」ソフトウェアを介して、導入されてきている。ホット・プラグ接続可能な装置がコンピュータに接続された時には、そのオペレーティングシステムのカーネルが、その装置に特有のデバイスドライバをインストールする。この場合には、該ドライバはまた、ビルトイン構成内においてあたかもハードウェアｃｏｍポートであるかのごとく、ユーザアプリケーションと相互作用する仮想的なｃｏｍポートとして機能する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記装置が、コンピュータ動作中に該コンピュータから取り外された場合には、該コンピュータが、関連付けられたドライバに、該ドライバ自身を除去させ、このことが、該ドライバによって提供された仮想的なｃｏｍポートの機能を解除する。このことは、誤動作（機能不全）を生じさせる可能性がある。何故ならば、たとえ対応する装置が取り外されたとしても、幾つかのアプリケーションはｃｏｍポート接続を必要とするからである。
【課題を解決するための手段】
【０００５】
本質的に本発明は、デバイスドライバを２つの部分へと分割することを含む。これら２つの部分のうちの一方は、「ｃｏｍインターフェース部」と呼ばれることが可能であり、関連付けられたアプリケーションに対して「ｃｏｍ」インターフェースを提供し、他方は、「ドライバポート」と呼ばれることが可能であり、周辺装置との伝達情報（通信）を提供する。これら２つの部分は、互いに伝達し合い、該ドライバを使用するユーザアプリケーションにとって、それらは典型的なデバイスドライバとなるように見える。ｃｏｍインターフェース部は、本明細書内において記載された他のソフトウェアモジュールが行うのと同様に追加的な機能を実施する。
【０００６】
周辺装置がＵＳＢポートへとプラグ接続された時には、それがオペレーティングシステムによって検出され、該装置のためのデバイスドライバを選択することにおいて使用される情報を取得するために該オペレーティングシステムが該装置と伝達し合って、コンピュータメモリ内へとそのドライバをロードする。該周辺装置と伝達し合うユーザアプリケーションは、従来通りに通知され、アプリケーションと周辺装置との間の伝達情報が該ドライバを通過する。この手順は、コンピュータオペレーティングシステムでは一般的である。
【０００７】
しかしながら、「ホット・プラグ接続可能な」周辺装置が、コンピュータ動作中にプラグを抜かれた時には、本発明によって提供されるデバイスドライバは、異なるように機能する。具体的には、従来通り、オペレーティングシステムは、周辺装置の除去を検知する。そのオペレーティングシステムは、次いで、デバイスドライバに該デバイスドライバ自身を除去（解除）するよう命令する。本発明に先だって、デバイスドライバはそのメモリ空間が開放され、従って、ｃｏｍポート（該ｃｏｍポートによってアプリケーションは通信が行われる）が解除される。ｃｏｍポートの解除にうまく対処するため、アプリケーションに書き込みが行われたか又は再書き込みが行われたのでない限り、誤動作が結果として生じる可能性がある。
【０００８】
しかしながら、本明細書内において記載されたデバイスドライバは、除去される装置と伝達し合う一部分のみを除去（解除）することによって応答する。該デバイスドライバは、ｃｏｍポートを含んでいるメモリ空間を開放しない。従って、あたかも周辺装置がプラグを抜かれていないかのように、アプリケーションがドライバとの伝達を継続することができる。該デバイスドライバは、当然、周辺装置自体には及ばないこととなり、従って、まるで該周辺装置が誤動作したかのように、該デバイスドライバが動作することとなる。代替として、アプリケーションに対して、その特定のアプリケーションにより適合可能な応答を提供するよう該ドライバを構成することもできる。
【実施例】
【０００９】
下記の本発明は、添付図面を参照する。
【００１０】
以下の説明は、具体的にはマイクロソフト社のオペレーティングシステムに対して向けられたものである。これらのシステムは、オペレーティングシステムのカーネルとインターフェースするソフトウェアを書き込む者にとって周知である。本発明により提供されるモジュールを除いて、本明細書内において言及される様々なソフトウェアモジュールは、マイクロソフト社によって公開されている。
【００１１】
図１は、ＧＰＳマップのアプリケーション１０Ａ、同期アプリケーション１０Ｂ、及びダイアル・アップ・ネットワークユーティリティ１０Ｃのようなアプリケーションと、一方、ＵＳＢ１３へとプラグ接続されるＵＳＢ多機能装置１２との間の伝達のための従来の構成を図示する。アプリケーション１０Ａは、前記装置１２のＧＰＳ受信器機能と伝達し合って、コンピュータディスプレイ上において様々なマップ機能を提供する。アプリケーション１０Ｂは、コンピュータ内のデータと、携帯情報端末（ＰＤＡ）のような装置（図示せず）とを同期させるために使用される。ダイアル・アップ・ネットワークユーティリティ１０Ｃは、前記装置１２のモデム機能と伝達し合う。
【００１２】
ｗｉｎ３２ｃｏｍＡＰＩ（アプリケーション・プログラム・インターフェース）１４によって、それらアプリケーションはオペレーティングシステムのカーネル（図示せず）とインターフェースされる。該ＡＰＩ１４は、更に、アプリケーションに対する仮想ｃｏｍポートとしてもまた機能するデバイスドライバ１６Ａ、１６Ｂ、及び１６Ｃと伝達し合う。到来するデータと出力されるデータとのためのドライバスタックス（図示せず）を含むその伝達経路は、複合ＵＳＢバスドライバ１８によって、及びＵＳＢドライバ・インターフェース（ＵＳＢＤＩ）２０によって、完結される。
【００１３】
代替的には、単一の多機能ＵＳＢ装置を用いる代わりに、別個の物理的なＵＳＢポートと共に、それらのポート内にプラグ接続されているそれぞれの機能を該装置が提供する状態で、周辺構成が構築されることが可能である。
【００１４】
システムがターンオンされるか、又は再起動される時には、ＵＳＢＤＩ２０は、ＵＳＢデバイスのための周辺バス１３をチェックする。該ＵＳＢＤＩ２０は、カーネルに対して、該ＵＳＢＤＩ２０が見つけ出すデバイスを問い合わせて、それらを識別する。該カーネルは、次いで、関連するドライバ（例えば、ドライバ１６Ａ、１６Ｂ、及び１６Ｃ）をメモリ内へとロードして、ＡＰＩ１４にこれらのドライバのアドレスを提供する。アプリケーションは、従って、各々の周辺機能と伝達し合うことができる。
【００１５】
コンピュータ動作中の装置１２の除去は、ＵＳＢＤＩ２０によって検出され、該ＵＳＢＤＩ２０は、その除去をカーネルに通知する。該カーネルは、次いで、デバイスドライバ１６Ａ、１６Ｂ、及び１６Ｃに信号を送って、これらのメモリ空間を開放し、これにより、該ドライバは除去（解除）される。上述のように、このことは、コンピュータの誤動作を生じさせる可能性がある。
【００１６】
本発明を図示する図２内において、図１内において図示されたシステムの同様の番号が付された構成要素と同じ機能を、様々な構成要素が提供する。しかしながら、システムが初期化される時には、すなわち、ターンオンされるか又は再起動（リブート）させられる時には、マスタドライバ２２がまた、ウォーキングメモリ内へとロードされる。具体的には、従来の構成内におけるように、各周辺装置は、該周辺装置が検出された時に、該装置からシステムによって取り出されたＩＤ番号を有する。この番号は、その装置のための適切なドライバをワーキングメモリ内へと選択及びロードするために、オペレーティングシステムによって通常は使用される。図２内に示された構成において、本発明に従って接続されることが可能な各周辺装置ごとの起動時に、別個のマスタドライバが、ロードされる。各マスタドライバは、起動時にメモリ内へとロードされ、次いで、それが、マスタドライバが関連付けられているＩＤを有する周辺装置に関連する接続通知のためにカーネルに記録（レジスト）される。
【００１７】
従って、マスタドライバ２２は、周辺装置のＩＤが多機能装置１２のＩＤである該周辺装置に関連する通知を記録（レジスト）する。システムが起動する時に、装置１２が検出されて、機能ドライバ１６Ａ、１６Ｂ、及び１６Ｃを構築することにより、結果として生じる通知にマスタドライバ２２が応答する。該機能ドライバは、更に、周辺装置１２の接続か又は接続の切断に関連する通知についてカーネルに記録（レジスト）する。
【００１８】
本発明に従って、各機能ドライバ１６の機能は、２つのモジュールへと効果的に分割される。該２つのモジュールとはすなわち、関連付けられたアプリケーションと伝達し合って、そのアプリケーションに対するｃｏｍポートとして機能するｃｏｍポートインターフェース部１６Ａ１、等と、周辺装置（多機能周辺装置の場合における１つの周辺機能）に対するリンクを提供するドライバー部１６Ａ２、等である。該機能ドライバは、従来の構成におけるように、装置の特定通知のため、カーネルに記録する。
【００１９】
好適には、ドライバ部１６１及び１６２は、単一ブロックとして物理的に構成される。従って、図１に関して上述のように、カーネルはドライバをワーキングメモリ内へとロードする。しかしながら、もしも周辺装置のプラグが抜かれ、且つ、そのカーネルがドライバに該ドライバ自身を除去（解除）するよう命令した場合には、例えば、ｃｏｍポート部１６Ａ１は、ドライバ部１６Ａ２からそれ自身の接続が効果的に解かれることにより応答する。該ドライバを使用するアプリケーション１０Ａは、従って、アプリケーションインターフェース部１６Ａ１内において関連するｃｏｍポートを見つけ出すことを継続することになる。該アプリケーションは、従って、周辺装置の除去によって乱されない。上述のように、該アプリケーションは、当然、周辺装置と伝達し合うことが不可能になることとなる。誤作動（該誤作動は、別様には、必要なｃｏｍポートの欠如を生じさせる可能性がある）を避ける等のために、インターフェース１６１は、しかしながら、ユーザアプリケーションからの伝達情報に対して適切な応答を提供する。
【００２０】
除去された周辺装置が再びプラグ接続されるか又は別様には置換される場合には、対応する機能ドライバ１６１が、イベントの通知を受け取り、応答して、以前に接続が解かれたドライバ部１６２に該ドライバ自体を再接続し、その結果、対応するアプリケーションが、再接続された装置と伝達し合うことが可能となる。
【００２１】
このように、ホット・プラグ接続可能な装置と共に用いられるための機能ドライバ構成を説明してきたが、対応する周辺装置のプラグが抜かれた（プラグ接続が切られた）後でも、ｃｏｍポートにアクセスすることが必要なユーザアプリケーションに該機能ドライバ構成は適応する。具体的には、本発明は、アプリケーションに対するｃｏｍポートインターフェースを提供する機能ドライバの一部をメモリ内に保持し、従って、対応するｃｏｍポートの除去（解除）の結果生じる可能性のある誤作動（機能不全）を防止する。
【図面の簡単な説明】
【００２２】
【図１】典型的な従来のＵＳＢポート構成内において含まれるソフトウェアのブロック図である。
【図２】本発明を含む典型的なＵＳＢポート構成のブロック図である。
【図１】
2009506426.tif 000003
【図２】
2009506426.tif 000004
【国際調査報告】
2009506426.tif 000005
2009506426.tif 000006
2009506426.tif 000007