(57)【要約】【課題】プラグアンドプレイ対応のデバイスを接続する際に当該デバイスに適したドライバをロード可能な構成を提供する。【解決手段】専用ドライバインストール処理により、コンピュータ１０に専用ドライバ２４がインストールされ、この専用ドライバ２４のインストールの完了後に、当該専用ドライバ２４に対応するデバイスに関連付けられる汎用ドライバ２３の関連付け情報が存在すると判定されると、汎用ドライバ２３をアンロードするための処理がアンロード処理により行われるとともに、存在すると判定された汎用ドライバ２３の関連付け情報がレジストリ削除処理により削除される。【選択図】図４
2020170330.tif 000002
【特許請求の範囲】
【請求項１】
プラグアンドプレイ対応のデバイスが接続されたコンピュータに、前記デバイスに適したドライバをインストールしてロードするドライバの設定方法であって、
オペレーティングシステムのセットアップ時にインストールされてアンインストール不能なドライバであってプラグアンドプレイ動作を無効化できないドライバを汎用ドライバ、デバイス専用のドライバを専用ドライバとするとき、
前記コンピュータに前記専用ドライバをインストールするインストールステップと、
前記専用ドライバのインストールの完了後に、当該専用ドライバに対応するデバイスに関連付けられる前記汎用ドライバの関連付け情報が存在するか否かについて判定する判定ステップと、
前記判定ステップにて前記汎用ドライバの関連付け情報が存在すると判定されると、前記汎用ドライバをアンロードするための処理を行うアンロードステップと、
前記判定ステップにて存在すると判定された前記汎用ドライバの関連付け情報を削除する削除ステップと、
を備えることを特徴とするドライバの設定方法。
【請求項２】
プラグアンドプレイ対応のデバイスが接続されたコンピュータに、前記デバイスに適したドライバをインストールしてロードするドライバの設定方法であって、
オペレーティングシステムのセットアップ時にインストールされてアンインストール不能なドライバであってプラグアンドプレイ動作を無効化できないドライバを汎用ドライバ、デバイス専用のドライバを専用ドライバとするとき、
前記コンピュータに前記専用ドライバをインストールするインストールステップと、
前記専用ドライバのインストール中に、当該専用ドライバに対応するデバイスに関連付けられる前記汎用ドライバの関連付け情報が存在するか否かについて判定する判定ステップと、
前記判定ステップの結果を記憶する記憶ステップと、
前記専用ドライバのインストール完了後に、前記記憶ステップにて前記汎用ドライバの関連付け情報が存在すると記憶されていると、前記汎用ドライバをアンロードするための処理を行うアンロードステップと、
前記記憶ステップにて存在するとして記憶された前記汎用ドライバの関連付け情報を削除する削除ステップと、
を備えることを特徴とするドライバの設定方法。
【請求項３】
プラグアンドプレイ対応のデバイスが接続されたコンピュータに、前記デバイスに適したドライバをインストールしてロードするドライバの設定方法であって、
オペレーティングシステムのセットアップ時にインストールされてアンインストール不能なドライバであってプラグアンドプレイ動作を無効化できないドライバを汎用ドライバ、デバイス専用のドライバを専用ドライバとするとき、
前記コンピュータに前記専用ドライバをインストールするインストールステップと、
前記専用ドライバのインストール中に、当該専用ドライバに対応するデバイスに関連付けられる前記汎用ドライバの関連付け情報が存在するか否かについて判定する判定ステップと、
前記判定ステップにて前記汎用ドライバの関連付け情報が存在すると判定されると、前記汎用ドライバをアンロードするための処理を行うアンロードステップと、
前記判定ステップにて存在すると判定された前記汎用ドライバの関連付け情報を削除する削除ステップと、
を備え、
前記専用ドライバのインストールが完了するまで前記判定ステップにおける判定が繰り返されるとともに、前記判定ステップにて前記汎用ドライバの関連付け情報が存在すると判定されるごとに前記アンロードステップ及び前記削除ステップがなされることを特徴とするドライバの設定方法。
【請求項４】
前記アンロードステップにて前記汎用ドライバがアンロードされると、ソフトウェア的に前記デバイスに関する抜挿を操作する抜挿ステップを備えることを特徴とする請求項１〜３のいずれか一項に記載のドライバの設定方法。
【請求項５】
プラグアンドプレイ対応のデバイスが接続されたコンピュータに、前記デバイスに適したドライバをインストールしてロードするためのプログラムであって、
オペレーティングシステムのセットアップ時にインストールされてアンインストール不能なドライバであってプラグアンドプレイ動作を無効化できないドライバを汎用ドライバ、デバイス専用のドライバを専用ドライバとするとき、
前記コンピュータに、
前記専用ドライバをインストールするインストールステップと、
前記専用ドライバのインストールの完了後に、当該専用ドライバに対応するデバイスに関連付けられる前記汎用ドライバの関連付け情報が存在するか否かについて判定する判定ステップと、
前記判定ステップにて前記汎用ドライバの関連付け情報が存在すると判定されると、前記汎用ドライバをアンロードするための処理を行うアンロードステップと、
前記判定ステップにて存在すると判定された前記汎用ドライバの関連付け情報を削除する削除ステップと、
を実行させることを特徴とするプログラム。
【請求項６】
プラグアンドプレイ対応のデバイスが接続されたコンピュータに、前記デバイスに適したドライバをインストールしてロードするためのプログラムであって、
オペレーティングシステムのセットアップ時にインストールされてアンインストール不能なドライバであってプラグアンドプレイ動作を無効化できないドライバを汎用ドライバ、デバイス専用のドライバを専用ドライバとするとき、
前記コンピュータに、
前記専用ドライバをインストールするインストールステップと、
前記専用ドライバのインストール中に、当該専用ドライバに対応するデバイスに関連付けられる前記汎用ドライバの関連付け情報が存在するか否かについて判定する判定ステップと、
前記判定ステップの結果を記憶する記憶ステップと、
前記専用ドライバのインストール完了後に、前記記憶ステップにて前記汎用ドライバの関連付け情報が存在すると記憶されていると、前記汎用ドライバをアンロードするための処理を行うアンロードステップと、
前記記憶ステップにて存在するとして記憶された前記汎用ドライバの関連付け情報を削除する削除ステップと、
を実行させることを特徴とするプログラム。
【請求項７】
プラグアンドプレイ対応のデバイスが接続されたコンピュータに、前記デバイスに適したドライバをインストールしてロードするためのプログラムであって、
オペレーティングシステムのセットアップ時にインストールされてアンインストール不能なドライバであってプラグアンドプレイ動作を無効化できないドライバを汎用ドライバ、デバイス専用のドライバを専用ドライバとするとき、
前記コンピュータに、
前記専用ドライバをインストールするインストールステップと、
前記専用ドライバのインストール中に、当該専用ドライバに対応するデバイスに関連付けられる前記汎用ドライバの関連付け情報が存在するか否かについて判定する判定ステップと、
前記判定ステップにて前記汎用ドライバの関連付け情報が存在すると判定されると、前記汎用ドライバをアンロードするための処理を行うアンロードステップと、
前記判定ステップにて存在すると判定された前記汎用ドライバの関連付け情報を削除する削除ステップと、
を備え、
前記専用ドライバのインストールが完了するまで前記判定ステップにおける判定が繰り返されるとともに、前記判定ステップにて前記汎用ドライバの関連付け情報が存在すると判定されるごとに前記アンロードステップ及び前記削除ステップがなされることを特徴とするプログラム。
【請求項８】
前記コンピュータに、
前記アンロードステップにて前記汎用ドライバがアンロードされると、ソフトウェア的に前記デバイスに関する抜挿を操作する抜挿ステップを実行させることを特徴とする請求項５〜７のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラグアンドプレイ対応のデバイスを接続する際に当該デバイスに適したドライバをインストールしてロードするためのドライバの設定方法及びプログラムに関するものである。
【背景技術】
【０００２】
近年、ＵＳＢ等の通信インタフェースを介して所定のデバイスをコンピュータに接続することで、そのデバイスが使用可能となるプラグアンドプレイという仕組みがスタンダードとなっている。例えば、Ｗｉｎｄｏｗｓ（登録商標）のＯＳ（オペレーティングシステム）のセットアップ時には複数種類のドライバがインストールされるようになっており、プラグアンドプレイ対応のデバイスがコンピュータに接続されると、このデバイスに適したドライバが自動的にロードされてメモリ内に展開されることで、そのデバイスと通信可能な状態になる。このようにロードされたドライバに関する情報が上記デバイスに関連付けられるようにレジストリに格納されるため、次にそのデバイスを接続した際にレジストリが参照されることで、同じドライバがロードされてメモリ内に展開される。
【０００３】
また、デバイス用のドライバとしては、上述のように予めインストールされるドライバよりもデバイスの性能、品質、機能等を最大限に引き出すための専用ドライバ（以下、アウトボックスドライバともいう）が、そのデバイスの製造メーカ等により提供される場合がある。このような専用ドライバは、ユーザが操作してインストールする必要があり、インストール完了後にそのデバイスを接続した際に当該専用ドライバが選択されることで、ロードされてメモリ内に展開される。
【０００４】
一方、上述のように予めインストールされるドライバには、アンインストール不能であってプラグアンドプレイ動作（自動ロード）を無効化できないドライバ（Ｗｉｎｄｏｗｓ１０／ＣＤＣ（Communication Device Class）クラスの例では「usbser.sys」  以下、汎用ドライバ又はインボックスドライバともいう）が含まれる。このような汎用ドライバでは、図１１に例示するように、専用ドライバのインストール前に上記デバイスが接続されることで（図１１のｔ７１参照）、当該デバイスに当該汎用ドライバが関連付けられて（図１１のｔ７２参照）、当該汎用ドライバがロードされる（図１１のｔ７３参照）。この場合、その後に専用ドライバのインストールが完了した場合でも（図１１のｔ７４参照）、デバイス接続時に（図１１のｔ７５参照）、レジストリが参照されるために汎用ドライバが選択されてロードされてしまう（図１１のｔ７６参照）。すなわち、デバイスに関連付けられるドライバは一つのみのため、プラグアンドプレイによって汎用ドライバがロードされてしまうと、その後にインストールした専用ドライバをロードできなくなるという問題がある。
【０００５】
この問題を解決するための技術として、下記特許文献１に開示されるプリンタードライバーのインストール方法が知られている。このインストール方法では、プリンター用ドライバとして機能する専用ドライバのインストール時に、既に汎用ドライバがインストールされているプリンターであっても、その専用ドライバをＷＳ−Ｄｉｓｃｏｖｅｒｙで探索したプリンターモデルリストに含めるような処理を行うことで、専用ドライバをインストール可能とする。具体的には、インストーラーで探索したＷＳＤプラグアインドプレイインストールが可能なプリンターのリストが画面表示されて、このリストから汎用ドライバを既にインストールしているプリンターが選択されると、そのプリンターに関するプリンターキューの情報がいったん削除されることで、専用ドライバをＷＳ−Ｄｉｓｃｏｖｅｒｙで探索したプリンターモデルリストに含めている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−１７４１１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上記特許文献１に開示される技術を利用して専用ドライバのインストール前に汎用ドライバをアンロードするようにしても、専用ドライバのインストール中に汎用ドライバがロードされてしまう場合がある。例えば、図１２（Ａ）に例示するように、専用ドライバのインストール中にユーザが誤ってデバイスを接続してしまうと（図１２（Ａ）のｔ８１参照）、当該デバイスに汎用ドライバが関連付けられて（図１２（Ａ）のｔ８２参照）、汎用ドライバがロードされてしまう（図１２（Ａ）のｔ８３参照）。このような場合には、専用ドライバのインストールが完了していても（図１２（Ａ）のｔ８４参照）、デバイス接続時に（図１２（Ａ）のｔ８５参照）、汎用ドライバがロードされてしまい（図１２（Ａ）のｔ８６参照）、専用ドライバをロードできないという問題が生じる。
【０００８】
また、例えば、図１２（Ｂ）に例示するように、専用ドライバのインストール開始前にデバイスが接続されたことで（図１２（Ｂ）のｔ９１参照）、当該デバイスに汎用ドライバが関連付けられて（図１２（Ｂ）のｔ９２参照）、汎用ドライバがロードされたことで（図１２（Ｂ）のｔ９３参照）、専用ドライバのインストール開始後にロードされた汎用ドライバを上記特許文献１に開示される技術等を利用してアンロードできても（図１２（Ｂ）のｔ９４参照）、再び汎用ドライバがロードされてしまい、専用ドライバをロードできなくなる場合がある。具体的には、例えば、上述のように専用ドライバのインストール開始後に汎用ドライバがアンロードされた状態において、専用ドライバのインストール中に静電ノイズ等による影響でそのデバイスが抜挿されたと誤認されると（図１２（Ｂ）のｔ９５参照）、汎用ドライバが再びロードされてしまう（図１２（Ｂ）のｔ９６参照）。そうすると、専用ドライバのインストールが完了していても（図１２（Ｂ）のｔ９７参照）、デバイス接続時に（図１２（Ｂ）のｔ９８参照）、汎用ドライバがロードされてしまい（図１２（Ｂ）のｔ９９参照）、専用ドライバをロードできないという問題が生じる。
【０００９】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、プラグアンドプレイ対応のデバイスを接続する際に当該デバイスに適したドライバをロード可能な構成を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、特許請求の範囲の請求項１に記載の発明は、
プラグアンドプレイ対応のデバイス（Ｄ）が接続されたコンピュータ（１０）に、前記デバイスに適したドライバをインストールしてロードするドライバの設定方法であって、
オペレーティングシステム（２１）のセットアップ時にインストールされてアンインストール不能なドライバであってプラグアンドプレイ動作を無効化できないドライバを汎用ドライバ（２３）、デバイス専用のドライバを専用ドライバ（２４）とするとき、
前記コンピュータに前記専用ドライバをインストールするインストールステップと、
前記専用ドライバのインストールの完了後に、当該専用ドライバに対応するデバイスに関連付けられる前記汎用ドライバの関連付け情報が存在するか否かについて判定する判定ステップと、
前記判定ステップにて前記汎用ドライバの関連付け情報が存在すると判定されると、前記汎用ドライバをアンロードするための処理を行うアンロードステップと、
前記判定ステップにて存在すると判定された前記汎用ドライバの関連付け情報を削除する削除ステップと、
を備えることを特徴とする。
【００１１】
また、請求項５に記載の発明は、
プラグアンドプレイ対応のデバイス（Ｄ）が接続されたコンピュータ（１０）に、前記デバイスに適したドライバをインストールしてロードするためのプログラムであって、
オペレーティングシステム（２１）のセットアップ時にインストールされてアンインストール不能なドライバであってプラグアンドプレイ動作を無効化できないドライバを汎用ドライバ（２３）、デバイス専用のドライバを専用ドライバ（２４）とするとき、
前記コンピュータに、
前記専用ドライバをインストールするインストールステップと、
前記専用ドライバのインストールの完了後に、当該専用ドライバに対応するデバイスに関連付けられる前記汎用ドライバの関連付け情報が存在するか否かについて判定する判定ステップと、
前記判定ステップにて前記汎用ドライバの関連付け情報が存在すると判定されると、前記汎用ドライバをアンロードするための処理を行うアンロードステップと、
前記判定ステップにて存在すると判定された前記汎用ドライバの関連付け情報を削除する削除ステップと、
を実行させることを特徴とする。
なお、上記各括弧内の符号は、後述する実施形態に記載の具体的手段との対応関係を示すものである。
【発明の効果】
【００１２】
請求項１の発明では、インストールステップにより、コンピュータに専用ドライバがインストールされ、この専用ドライバのインストールの完了後に、当該専用ドライバに対応するデバイスに関連付けられる汎用ドライバの関連付け情報が存在するか否かについて判定ステップにより判定される。そして、判定ステップにて汎用ドライバの関連付け情報が存在すると判定されると、汎用ドライバをアンロードするための処理がアンロードステップにより行われるとともに、判定ステップにて存在すると判定された汎用ドライバの関連付け情報が削除ステップにより削除される。
【００１３】
これにより、アンインストール不能であってプラグアンドプレイ動作を無効化できない汎用ドライバ（インボックスドライバ）が専用ドライバのインストール中にロードされても、専用ドライバのインストール完了後に、汎用ドライバがアンロードされるとともに上記汎用ドライバの関連付け情報が削除される結果、専用ドライバをロード可能な状態になる。したがって、専用ドライバのインストール中に汎用ドライバがロードされるような状態であっても、意図してインストールした専用ドライバがロード不能となることもないため、プラグアンドプレイ対応のデバイスを接続する際に当該デバイスに適したドライバをロード可能な設定方法を実現することができる。
【００１４】
請求項２の発明では、インストールステップにより、コンピュータに専用ドライバがインストールされ、この専用ドライバのインストール中に、当該専用ドライバに対応するデバイスに関連付けられる汎用ドライバの関連付け情報が存在するか否かについて判定ステップにより判定されて、その結果が記憶ステップにて記憶される。そして、専用ドライバのインストール完了後に、記憶ステップにて汎用ドライバの関連付け情報が存在すると記憶されていると、汎用ドライバをアンロードするための処理がアンロードステップにより行われるとともに、記憶ステップにて存在するとして記憶された汎用ドライバの関連付け情報が削除ステップにより削除される。
【００１５】
これにより、アンインストール不能であってプラグアンドプレイ動作を無効化できない汎用ドライバ（インボックスドライバ）が専用ドライバのインストール中にロードされても、この専用ドライバのインストール中に汎用ドライバの関連付け情報が存在すると判定されることで、専用ドライバのインストール完了後に、汎用ドライバがアンロードされるとともに上記汎用ドライバの関連付け情報が削除される結果、専用ドライバをロード可能な状態になる。したがって、専用ドライバのインストール中に汎用ドライバがロードされるような状態であっても、意図してインストールした専用ドライバがロード不能となることもないため、プラグアンドプレイ対応のデバイスを接続する際に当該デバイスに適したドライバをロード可能な設定方法を実現することができる。
【００１６】
請求項３の発明では、インストールステップにより、コンピュータに専用ドライバがインストールされ、この専用ドライバのインストール中に、当該専用ドライバに対応するデバイスに関連付けられる汎用ドライバの関連付け情報が存在するか否かについて判定ステップにより判定される。そして、専用ドライバのインストールが完了するまで上記判定ステップにおける判定が繰り返されるとともに、当該判定ステップにて汎用ドライバの関連付け情報が存在すると判定されるごとに、汎用ドライバをアンロードするための処理を行うアンロードステップと判定ステップにて存在すると判定された汎用ドライバの関連付け情報を削除する削除ステップとがなされる。
【００１７】
これにより、アンインストール不能であってプラグアンドプレイ動作を無効化できない汎用ドライバ（インボックスドライバ）が専用ドライバのインストール中にロードされても、この専用ドライバのインストール中に汎用ドライバの関連付け情報が存在すると判定されることで、汎用ドライバがアンロードされるとともに上記汎用ドライバの関連付け情報が削除される結果、専用ドライバをロード可能な状態になる。特に、専用ドライバのインストール中に複数回汎用ドライバがロードされるような状態になっても、その都度、汎用ドライバのアンロードと当該汎用ドライバの関連付け情報の削除とを実施することができる。したがって、専用ドライバのインストール中に汎用ドライバがロードされるような状態であっても、意図してインストールした専用ドライバがロード不能となることもないため、プラグアンドプレイ対応のデバイスを接続する際に当該デバイスに適したドライバをロード可能な設定方法を実現することができる。
【００１８】
請求項１〜３のいずれか一項に記載の発明により、デバイスと汎用ドライバとの関連付けが削除されているため、それ以降、手動でデバイスの抜き差しを行った際のプラグアンドプレイにより、専用ドライバがロードされる。これに対し、デバイスが物理的に挿入されたまま状態のときは、汎用ドライバの関連付け情報の削除後に、「手動でデバイスの抜き差し」を行う代わりに、請求項４の発明により、ソフトウェア的にデバイスに関する抜挿を操作する。これにより、セットアッププログラムからプラグアンドプレイ機会を引き起こし「自動的に」専用ドライバがロードされ、デバイスと通信可能な状態まで全てセットアッププログラムで設定することが可能である。
【００１９】
請求項５の発明によれば、請求項１と同様の効果を奏するプログラムを実現できる。
請求項６の発明によれば、請求項２と同様の効果を奏するプログラムを実現できる。
請求項７の発明によれば、請求項３と同様の効果を奏するプログラムを実現できる。
請求項８の発明によれば、請求項４と同様の効果を奏するプログラムを実現できる。
【図面の簡単な説明】
【００２０】
【図１】第１実施形態に係るライバの設定方法が採用されるコンピュータ及びデバイスを概略的に示す説明図である。
【図２】図１のコンピュータの電気的構成を例示するブロック図である。
【図３】第１実施形態において、コンピュータで行われるドライバ設定処理の流れを例示するフローチャートである。
【図４】第１実施形態において、専用ドライバインストール前後でのデバイス挿抜認識状態、汎用ドライバロード状態及び専用ドライバロード状態を説明する説明図である。
【図５】専用ドライバのインストールの際に表示部における表示画面の表示状態を説明する説明図であり、図５（Ａ）は、インストール中の表示状態を示し、図５（Ｂ）はインストール完了直後の表示状態を示し、図５（Ｃ）は、インストール完了直後にデバイスが接続された後の表示状態を示す。
【図６】第１実施形態の別例において、専用ドライバインストール前後でのデバイス挿抜認識状態、汎用ドライバロード状態及び専用ドライバロード状態を説明する説明図である。
【図７】第２実施形態において、コンピュータで行われるデバイス挿抜検知処理の流れを例示するフローチャートである。
【図８】第３実施形態において、コンピュータで行われるデバイス挿抜検知処理の流れを例示するフローチャートである。
【図９】第３実施形態において、専用ドライバインストール前後でのデバイス挿抜認識状態、汎用ドライバロード状態及び専用ドライバロード状態を説明する説明図である。
【図１０】第４実施形態において、コンピュータで行われるドライバ設定処理の流れを例示するフローチャートである。
【図１１】従来技術において、専用ドライバインストール前にデバイスが接続された場合におけるデバイス挿抜認識状態、汎用ドライバロード状態及び専用ドライバロード状態を説明する説明図である。
【図１２】図１２（Ａ）は、従来技術において、専用ドライバインストール中にデバイスが接続された場合におけるデバイス挿抜認識状態、汎用ドライバロード状態及び専用ドライバロード状態を説明する説明図であり、図１２（Ｂ）は、従来技術において、専用ドライバインストール中にデバイスが抜挿されたと誤認された場合におけるデバイス挿抜認識状態、汎用ドライバロード状態及び専用ドライバロード状態を説明する説明図である。
【発明を実施するための形態】
【００２１】
［第１実施形態］
以下、本発明に係るドライバの設定方法及びプログラムを具現化した第１実施形態について、図面を参照して説明する。
本実施形態に係るドライバの設定方法は、図１等に示すコンピュータ１０に対してプラグアンドプレイ対応のデバイスが接続された場合に、このデバイスに適したドライバをインストールしてロードする設定方法である。
【００２２】
コンピュータ１０は、例えばパーソナルコンピュータとして構成されており、図２に示すように、主に、ＣＰＵ１１、ＲＯＭ１２及びＲＡＭ１３などのメモリ、ハードディスクドライブ（以下ＨＤＤとも称する）１４を備えている。また、ＣＰＵ１１には、バス１８を介して、表示部１５、入力部１６、通信部１７が制御可能に接続されている。なお、図示はしていないが、バス１８に接続された各回路とＣＰＵ１１との間の入出力制御を行う入出力コントローラなども設けられている。
【００２３】
表示部１５は、液晶表示装置等の公知の表示装置によって構成されており、ＣＰＵ１１からの指令に基づいて各種画像を表示するように機能する。また、入力部１６は、キーボードやマウスなどの入力手段によって構成されており、ユーザの操作に応じて各種情報を入力するように機能する。
【００２４】
通信部１７は、アプリケーションプログラム２２等によって生成されたデータを接続されたデバイス等に送信したり、或いはデバイス等からのデータを受信するように機能するものであり、通信インタフェースと、ＵＳＢポートを含めた複数の通信ポートとを備えた構成をなしている。各通信ポートは、シリアルコネクタやパラレルコネクタとして構成されており、ＲＳ２３２ＣケーブルやＵＳＢケーブルなどの通信ケーブルを介して各種通信機器（例えば、他のコンピュータ、外部記憶装置、その他の情報処理装置等）が接続される構成をなしている。また、通信インタフェースは、各通信ポートを介したデータの入出力制御を行うように構成されている。
【００２５】
ＣＰＵ１１は、必要に応じ、上記入力部１６にて入力された情報の取得、表示部１５に対する表示制御、ＲＯＭ１２、ＲＡＭ１３、ＨＤＤ１４に対する読み取り又は書き込みの制御、或いは、通信部１７の制御を行う。ＨＤＤ１４には、オペレーティングシステム（以下、ＯＳともいう）２１や各種のアプリケーションプログラム２２等のプログラムがインストールされて格納されており、ＣＰＵ１１は、ＯＳ２１の制御の下、アプリケーションプログラム２２等のプログラムをＲＡＭ１３にロードして実行することで、各種処理を行うように構成されている。
【００２６】
本実施形態では、ＯＳ２１として、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）が採用されており、このＯＳ２１のセットアップ（インストール）時には、汎用的に利用可能な複数種類のドライバがインストールされるようになっている。そして、プラグアンドプレイ対応のデバイスが通信部１７を介してコンピュータ１０に接続されることで、このデバイスに適したドライバが自動的にロードされてＲＡＭ１３内に展開されて、そのデバイスと通信可能な状態になる。その際、ロードされたドライバに関する情報（以下、ドライバ情報ともいう）が上記デバイスに関連付けられるようにシステムドライブ内のレジストリに格納されるため、次にそのデバイスを接続した際にレジストリが参照されることで、同じドライバがロードされてＲＡＭ１３内に展開される。
【００２７】
上述のように予めインストールされるドライバには、上述した汎用ドライバ（インボックスドライバ：図２の符号２３参照）が含まれるため、上述した専用ドライバ（アウトボックスドライバ：図２の符号２４参照）のインストール完了前にプラグアンドプレイ動作によって汎用ドライバ２３がロードされてしまうと、その後にインストールした専用ドライバ２４をロードできなくなるという問題がある。
【００２８】
そこで、本実施形態では、ＣＰＵ１１にてなされるドライバ設定処理により、専用ドライバ２４のインストールの完了後に、当該専用ドライバ２４に対応するデバイスに関連付けられる汎用ドライバ２３の関連付け情報（ドライバ情報）が存在すると判定されると、当該汎用ドライバ２３をアンロードするとともに上記ドライバ情報を削除することで、専用ドライバ２４をロード可能な状態に移行する。
【００２９】
以下、ＵＳＢメモリやＣＤ−ＲＯＭ等の記録媒体により取得可能な専用ドライバ２４をインストールするための操作がなされることで、ＣＰＵ１１にてなされるドライバ設定処理について、図３のフローチャートを参照して詳述する。具体的には、コンピュータ１０に接続するデバイスとして、情報コード等を光学的に読み取るバーコードスキャナＤが採用され、このバーコードスキャナＤの製販メーカ等から提供される専用ドライバ２４をインストールする場合を例に説明する。より詳細には、図４に示すように、専用ドライバ２４のインストール開始前にバーコードスキャナＤがコンピュータ１０に接続されて挿状態となり（図４のｔ１１参照）、バーコードスキャナＤに汎用ドライバ２３が関連付けられて（図４のｔ１２参照）、その汎用ドライバ２３がロードされた後に（図４のｔ１３参照）、上記特許文献１の技術を利用した専用ドライバ２４のインストール前の汎用ドライバ２３の存在判定と削除する技術を用いて、一旦ロードされた汎用ドライバ２３をアンロードして（図４のｔ１４参照）、汎用ドライバ２３のドライバ情報を削除した後（図４のｔ１５参照）について説明する。この場合には、専用ドライバ２４のインストール中にバーコードスキャナＤの挿抜があったと認識されると（図４のｔ１６参照）、上記特許文献１の技術を利用しても、再び、専用ドライバ２４に対応するデバイスに汎用ドライバ２３が関連付けられて（図４のｔ１７参照）、その汎用ドライバ２３がロードされてしまうからである（図４のｔ１８参照）。なお、専用ドライバ２４は、上記記録媒体により取得されことに限らず、インターネット等を経由して取得されてもよい。
【００３０】
ドライバ設定処理が開始されると、まず、ステップＳ１０１に示す専用ドライバインストール処理（インストールステップ）がなされ、上記記録媒体等の外部から取得した専用ドライバ２４をコンピュータ１０にインストールするための処理が開始される。
【００３１】
上記専用ドライバインストール処理が完了すると、ステップＳ１０３に示す判定処理（判定ステップ）がなされ、専用ドライバ２４に対応するデバイス（バーコードスキャナＤ）に関連付けられる汎用ドライバ２３の関連付け情報が存在するか否かについて、レジストリに格納されるドライバ情報に基づいて判定される。ここで、汎用ドライバ２３が一度もロードされていないために、バーコードスキャナＤに関連付けられた汎用ドライバ２３のドライバ情報がレジストリに格納されていない場合には、ステップＳ１０３にてＮｏと判定される。この場合には、ステップＳ１０９に示す専用ドライバロード処理がなされる。この処理では、バーコードスキャナＤは接続したままの状態で、実際の抜挿がなくても、ソフトウェア的に抜挿を操作する処理（抜挿ステップ）を行うことで、バーコードスキャナＤに関連付けられるように専用ドライバ２４のドライバ情報がレジストリに格納されて、当該専用ドライバ２４がロードされてＲＡＭ１３内に展開される。以降、バーコードスキャナＤを接続する場合には、上記専用ドライバ２４がロードされてＲＡＭ１３内に展開されるようになる。
【００３２】
一方、専用ドライバ２４のインストール中に静電ノイズ等による影響でバーコードスキャナＤが抜挿されたと誤認されると（図４のｔ１６参照）、バーコードスキャナＤに関連付けられた汎用ドライバ２３のドライバ情報がレジストリに格納され（図４のｔ１７参照）、汎用ドライバ２３がロードされる（図４のｔ１８参照）。このような場合には、専用ドライバ２４のインストール完了後において（図４のｔ１９参照）、レジストリに格納されるドライバ情報に基づいて、バーコードスキャナＤに関連付けられる汎用ドライバ２３の関連付け情報が存在すると判定されるため、ステップＳ１０３にてＹｅｓと判定される。
【００３３】
この場合には、バーコードスキャナＤは接続したままの状態で、実際の抜出がなくても、ソフトウェア的に抜出を操作する処理を行うことで（図４のｔ２０参照）、ステップＳ１０５に示すアンロード処理（アンロードステップ）がなされ、上述のようにインストールされた専用ドライバ２４に対応するデバイス（バーコードスキャナＤ）に関連付けられた汎用ドライバ２３がＲＡＭ１３からアンロードされる（図４のｔ２１参照）。
【００３４】
続いて、ステップＳ１０７に示すレジストリ削除処理（削除ステップ）がなされ、バーコードスキャナＤに関してレジストリに格納される汎用ドライバ２３のドライバ情報が削除される（図４のｔ２２参照）。
【００３５】
そして、上述したステップＳ１０９に示す専用ドライバロード処理がなされ、バーコードスキャナＤは接続したままの状態で、実際の抜挿がなくても、ソフトウェア的に抜挿を操作することで（図４のｔ２３参照）、バーコードスキャナＤに関連付けられるように専用ドライバ２４のドライバ情報がレジストリに格納され（図４のｔ２４参照）、当該専用ドライバ２４がロードされてＲＡＭ１３内に展開される（図４のｔ２５参照）。以降、バーコードスキャナＤを接続する場合には、上記専用ドライバ２４がロードされてＲＡＭ１３内に展開されるようになる。
【００３６】
なお、上述のようにドライバ設定処理が行われる際、図５（Ａ）〜（Ｃ）に示すように、専用ドライバ２４のインストール完了後にデバイスの接続を促す情報を段階的に表示部１５の表示画面に表示することができる。具体的には、インストール中には、図５（Ａ）に示すように、ドライバがインストール中であってデバイスを接続させないための情報を表示し、インストール完了直後に、図５（Ｂ）に示すように、デバイスの接続を促す情報を表示し、接続されたデバイスと通信可能な状態となることで、図５（Ｃ）に示すように、デバイスが使用可能状態であることを表示することができる。これにより、専用ドライバ２４のインストールが完了するまでに、誤ってデバイスが接続されてしまう状態を抑制することができる。
【００３７】
また、本実施形態におけるドライバ設定処理では、図６に示す別例のように、専用ドライバ２４のインストール中にユーザが誤ってデバイスを接続することで（図６のｔ３１参照）、当該デバイスに関連付けられた汎用ドライバ２３のドライバ情報がレジストリに格納され（図６のｔ３２参照）、汎用ドライバ２３がロードされても（図６のｔ３３参照）、専用ドライバ２４のインストール完了後に（図６のｔ３４参照）、デバイスは接続したままの状態で、実際の抜出がなくても、ソフトウェア的に抜出を操作することで（図６のｔ３５参照）、汎用ドライバ２３がＲＡＭ１３からアンロードされ（図６のｔ３６参照）、接続されたデバイスに関してレジストリに格納される汎用ドライバ２３のドライバ情報が削除される（図６のｔ３７参照）。その後、デバイスは接続したままの状態で、実際の抜挿がなくても、ソフトウェア的に抜挿を操作することで（図６のｔ３８参照）、専用ドライバ２４のドライバ情報がレジストリに格納され（図６のｔ３９参照）、当該専用ドライバ２４がロードされてＲＡＭ１３内に展開されることで（図４のｔ４０参照）、既に接続されているデバイスが利用可能な状態になる。
【００３８】
以上説明したように、本実施形態に係るドライバの設定方法及びプログラムでは、上記専用ドライバインストール処理（インストールステップ）により、コンピュータ１０に専用ドライバ２４がインストールされ、この専用ドライバ２４のインストールの完了後に、当該専用ドライバ２４に対応するデバイスに関連付けられる汎用ドライバ２３の関連付け情報（ドライバ情報）が存在するか否かについてステップＳ１０３の判定処理（判定ステップ）により判定される。そして、汎用ドライバ２３の関連付け情報が存在すると判定されると（Ｓ１０３でＹｅｓ）、汎用ドライバ２３をアンロードするための処理がアンロード処理（アンロードステップ）により行われるとともに（Ｓ１０５）、存在すると判定された汎用ドライバ２３のドライバ情報（関連付け情報）がレジストリ削除処理（削除ステップ）により削除される（Ｓ１０７）。
【００３９】
これにより、アンインストール不能であってプラグアンドプレイ動作を無効化できない汎用ドライバ（インボックスドライバ）２３が専用ドライバ２４のインストール中にロードされても、専用ドライバ２４のインストール完了後に、汎用ドライバ２３がアンロードされるとともに上記汎用ドライバ２３のドライバ情報が削除される結果、専用ドライバ２４をロード可能な状態になる。したがって、専用ドライバ２４のインストール中に汎用ドライバ２３がロードされるような状態であっても、意図してインストールした専用ドライバ２４がロード不能となることもないため、プラグアンドプレイ対応のデバイスを接続する際に当該デバイスに適したドライバをロード可能な設定方法及びプログラムを実現することができる。
【００４０】
特に、アンロード処理にて汎用ドライバ２３がアンロードされると、ソフトウェア的にデバイスに関する抜挿を操作する処理（抜挿ステップ）がなされることで、専用ドライバ２４が専用ドライバロード処理によりロードされる（Ｓ１０９）。すなわち、デバイスが物理的に挿入されたまま状態のときは、汎用ドライバ２３のドライバ情報の削除後に、「手動でデバイスの抜き差し」を行う代わりに、上述のように、ソフトウェア的にデバイスに関する抜挿を操作する。これにより、セットアッププログラムからプラグアンドプレイ機会を引き起こし「自動的に」専用ドライバ２４がロードされ、デバイスと通信可能な状態まで全てセットアッププログラムで設定することが可能である。
【００４１】
［第２実施形態］
次に、第２実施形態に係るドライバの設定方法及びプログラムについて、図面を参照して説明する。
本第２実施形態では、ＯＳ２１からの通知を利用して専用ドライバ２４に対応するデバイスに関連付けられる汎用ドライバ２３の関連付け情報が存在するか否かについて判定する点が、上記第１実施形態と主に異なる。したがって、第１実施形態と実質的に同一の構成部分には、同一符号を付し、その説明を省略する。
【００４２】
上記第１実施形態におけるドライバ設定処理では、レジストリに格納されるドライバ情報に基づいて専用ドライバ２４に対応するデバイスに関連付けられる汎用ドライバ２３の関連付け情報が存在するか否かについて判定しているが、実行する環境やタイミング等によってはレジストリを参照できない場合がある。
【００４３】
そこで、本実施形態では、上記ドライバ設定処理とは別のスレッドとして並行してＣＰＵ１１にて行われるデバイス挿抜検知処理にて、専用ドライバ２４のインストール中に、ＯＳ２１からのイベント通知（Ｗｉｎｄｏｗｓ  ＯＳの場合、例えば、WM_DEVICECHANGE）に応じて、専用ドライバ２４に対応するデバイスに関連付けられる汎用ドライバ２３の関連付け情報が存在するか否かについて判定する。
【００４４】
以下、本実施形態におけるデバイス挿抜検知処理及びドライバ設定処理について、図７及び図３に示すフローチャート等を参照して詳述する。なお、上記第１実施形態と同様に、バーコードスキャナＤが図４に例示するように接続された場合を例に説明する。
図３のフローチャートにて示すドライバ設定処理の開始とともに別のスレッドとして図７のフローチャートにて示すデバイス挿抜検知処理が生成されて開始されると、インストール中の専用ドライバ２４に対応するデバイスが接続されているか否かの判断するためのフラグＦが、デバイスの抜状態（未接続状態）を示す「０」に設定されてＲＡＭ１３等に記憶される（図７のＳ２０１）。続いて、ステップＳ２０３の判定処理にて、専用ドライバ２４に対応するデバイスが接続された際にＯＳ２１から出力されるイベント通知（以下、単に、デバイス変更通知ともいう）が受信されているか否かについて判定される。ここで、デバイス変更通知が受信されていない場合には（Ｓ２０３でＮｏ）、ステップＳ２０５にて、専用ドライバ２４のインストールが完了しているか否かについて判定され、インストール完了していない場合には、Ｎｏと判定されて、上記ステップＳ２０３からの処理がなさる。
【００４５】
そして、デバイス変更通知が受信されることなく、専用ドライバ２４のインストールが完了すると（Ｓ２０５でＹｅｓ）、フラグＦが「０」に設定されて保持された状態で、デバイス挿抜検知処理が終了する。
【００４６】
一方、専用ドライバ２４のインストールが完了する前に、静電ノイズ等による影響でバーコードスキャナＤが抜挿されたと誤認されることで（図４のｔ１６参照）、ＯＳ２１から出力されるデバイス変更通知が受信されると、ステップＳ２０３にてＹｅｓと判定される。この場合には、ステップＳ２０７にて、フラグＦが、デバイスの挿状態（接続状態）を示す「１」に設定されてＲＡＭ１３等に記憶された状態で、デバイス挿抜検知処理が終了する。すなわち、本実施形態では、上記第１実施形態と異なり、上記ステップＳ２０３の判定処理が実質的に「判定ステップ」として機能し、フラグＦが「判定ステップ」の結果の一例に相当し、上記ステップＳ２０７（Ｓ２０１）の処理が、「記憶ステップ」として機能する。
【００４７】
また、本実施形態においてＣＰＵ１１にてなされるドライバ設定処理では、上記専用ドライバインストール処理が完了すると（図３のＳ１０１）、ステップＳ１０３の判定処理にて、専用ドライバ２４に対応するデバイスに関連付けられる汎用ドライバ２３の関連付け情報が存在するか否かについて、フラグＦの設定状態に基づいて判定される。
【００４８】
ここで、デバイス変更通知が受信されることなく専用ドライバ２４のインストールが完了していることから、フラグＦが「０」に設定されている場合には、専用ドライバ２４に対応するデバイスに関連付けられる汎用ドライバ２３の関連付け情報が存在しないとして（Ｓ１０３でＮｏ）、上記ステップＳ１０９に示す専用ドライバロード処理がなされる。
【００４９】
一方、フラグＦが「１」に設定されている場合には、専用ドライバ２４に対応するデバイスに関連付けられる汎用ドライバ２３の関連付け情報が存在するとして（Ｓ１０３でＹｅｓ）、汎用ドライバ２３がＲＡＭ１３からアンロードされるとともに（Ｓ１０５）、バーコードスキャナＤに関してレジストリに格納される汎用ドライバ２３のドライバ情報を削除するための処理がなされて（Ｓ１０７）、上記ステップＳ１０９に示す専用ドライバロード処理がなされる。
【００５０】
以上説明したように、本実施形態に係るドライバの設定方法及びプログラムでは、ＯＳ２１からの通知に応じて、汎用ドライバ２３がロードされているか否かについて実質的にステップＳ２０３の判定処理（判定ステップ）により判定される。プラグアンドプレイ対応のデバイスが接続されると、この接続に応じたデバイス変更通知等がＯＳ２１から出力されるため、専用ドライバ２４のインストール中であっても上記通知が出力されることで、専用ドライバ２４に対応するデバイスに関連付けられる汎用ドライバ２３の関連付け情報が存在すると判定することができる。
【００５１】
［第３実施形態］
次に、第３実施形態に係るドライバの設定方法及びプログラムについて、図面を参照して説明する。
本第３実施形態では、ロードされた汎用ドライバ２３を専用ドライバ２４のインストール中にアンロードする点が、上記第２実施形態と主に異なる。したがって、第２実施形態と実質的に同一の構成部分には、同一符号を付し、その説明を省略する。
【００５２】
以下、本実施形態において、ＣＰＵ１１にてなされるデバイス挿抜検知処理及びドライバ設定処理について、図８に示すフローチャート等を参照して詳述する。なお、上記第１実施形態と同様に、専用ドライバ２４のインストール開始前にバーコードスキャナＤが接続されて挿状態となったことから、バーコードスキャナＤに関連付けられるように汎用ドライバ２３のドライバ情報がレジストリに格納されて（図９のｔ５１参照）、その汎用ドライバ２３がロードされた後に（図９のｔ５２参照）、上記特許文献１の技術を利用した専用ドライバ２４のインストール前の汎用ドライバ２３の存在判定と削除する技術を用いて、専用ドライバ２４のインストール開始後において、一旦ロードされた汎用ドライバ２３をアンロードして（図９のｔ５３参照）、汎用ドライバ２３のドライバ情報を削除した後（図９のｔ５４参照）について説明する。
【００５３】
上記ドライバ設定処理の開始とともに別のスレッドとして図８のフローチャートにて示すデバイス挿抜検知処理が生成されて開始されると、まず、図８のステップＳ２０３の判定処理にて、ＯＳ２１から上記デバイス変更通知が受信されているか否かについて判定される。ここで、デバイス変更通知が受信されておらず、専用ドライバ２４のインストールが完了していない場合には、ステップＳ２０３、Ｓ２０５にてＮｏとの判定が繰り返される。
【００５４】
そして、専用ドライバ２４のインストールが完了する前に、静電ノイズ等による影響でバーコードスキャナＤが抜挿されたと誤認されることで（図９のｔ５５参照）、バーコードスキャナＤに関連付けられるように汎用ドライバ２３のドライバ情報がレジストリに格納されて（図９のｔ５６参照）、その汎用ドライバ２３がロードされた後に（図９のｔ５７参照）、ＯＳ２１から出力されるデバイス変更通知が受信されると、ステップＳ２０３にてＹｅｓと判定される。この場合には、ステップＳ２０９のアンロード処理（アンロードステップ）がなされ、上述のようにインストールされた専用ドライバ２４に対応するデバイス（バーコードスキャナＤ）が、汎用ドライバ２３がＲＡＭ１３からアンロードされる（図９のｔ５８参照）。続いて、ステップＳ２１１に示すレジストリ削除処理（削除ステップ）がなされ、バーコードスキャナＤに関してレジストリに格納される汎用ドライバ２３のドライバ情報が削除されて（図９のｔ５９参照）、上記ステップＳ２０３からの処理が繰り返される。なお、本実施形態では、ステップＳ２０３の判定処理が、「判定ステップ」の一例に相当し得る。
【００５５】
その後、専用ドライバ２４のインストールが完了する前に、再び、静電ノイズ等による影響でバーコードスキャナＤが抜挿されたと誤認されると（図９のｔ６０参照）、バーコードスキャナＤに関連付けられるように汎用ドライバ２３のドライバ情報がレジストリに格納されて（図９のｔ６１参照）、その汎用ドライバ２３がロードされる（図９のｔ６２参照）。その後、ＯＳ２１から出力されるデバイス変更通知が受信されることで（Ｓ２０３でＹｅｓ）、ステップＳ２０９のアンロード処理にて、汎用ドライバ２３がＲＡＭ１３からアンロードされ（図９のｔ６３参照）、ステップＳ２１１に示すレジストリ削除処理にて、バーコードスキャナＤに関してレジストリに格納される汎用ドライバ２３のドライバ情報が削除されて（図９のｔ６４参照）、上記ステップＳ２０３からの処理が繰り返される。
【００５６】
そして、上記ステップＳ２０３からの繰り返し処理中に、専用ドライバ２４のインストールが完了すると（Ｓ２０５でＹｅｓ）、デバイス挿抜検知処理が終了する。
【００５７】
すなわち、本実施形態では、インストール中の専用ドライバ２４に対応するデバイスに汎用ドライバ２３が繰り返し関連付けられるような状態であっても、専用ドライバ２４のインストールが完了すると、専用ドライバ２４がロード可能な状態になる。このため、本実施形態においてＣＰＵ１１にてなされるドライバ設定処理では、上記第２実施形態と異なり、専用ドライバインストール処理が完了すると（図９のｔ６５参照）、直ちに、専用ドライバロード処理がなされる。すなわち、上述のように意図してインストールした専用ドライバ２４に対応するデバイス（バーコードスキャナＤ）が、デバイスは接続したままの状態で、実際の抜挿がなくても、ソフトウェア的に抜挿を操作することで（図９のｔ６６参照）、デバイスに関連付けられた専用ドライバ２４のドライバ情報がレジストリに格納され（図９のｔ６７参照）、当該専用ドライバ２４がロードされてＲＡＭ１３内に展開される（図９のｔ６８参照）。
【００５８】
以上説明したように、本実施形態に係るドライバの設定方法及びプログラムでは、上記専用ドライバインストール処理（インストールステップ）により、コンピュータ１０に専用ドライバ２４がインストールされ、この専用ドライバ２４のインストール中に、当該専用ドライバ２４に対応するデバイス用の汎用ドライバ２３がコンピュータ１０のＲＡＭ１３内にロードされているか否かについてステップＳ２０３の判定処理（判定ステップ）により判定される。そして、専用ドライバ２４のインストールが完了するまで上記ステップＳ２０３の判定処理における判定が繰り返されるとともに、当該判定処理にてデバイス変更通知が受信されたと判定されるごとに、すなわち、汎用ドライバ２３の関連付け情報が存在すると判定されるごとに、汎用ドライバ２３をアンロードするアンロード処理（Ｓ２０９）と汎用ドライバ２３のドライバ情報（関連付け情報）を削除する削除処理（Ｓ２１１）とがなされる。
【００５９】
このように、専用ドライバ２４のインストール中に汎用ドライバ２３がロードされても、この専用ドライバ２４のインストール中に汎用ドライバの関連付け情報が存在すると判定されることで、汎用ドライバ２３がアンロードされるとともに上記汎用ドライバ２３のドライバ情報が削除される結果、専用ドライバ２４をロード可能な状態になる。特に、専用ドライバ２４のインストール中に複数回汎用ドライバ２３がロードされるような状態になっても、その都度、汎用ドライバ２３のアンロードと当該汎用ドライバ２３のドライバ情報の削除とを実施することができる。したがって、専用ドライバ２４のインストール中に汎用ドライバ２３がロードされるような状態であっても、意図してインストールした専用ドライバ２４がロード不能となることもないため、プラグアンドプレイ対応のデバイスを接続する際に当該デバイスに適したドライバをロード可能な設定方法を実現することができる。
【００６０】
［第４実施形態］
次に、第４実施形態に係るドライバの設定方法及びプログラムについて、図面を参照して説明する。
本第４実施形態では、Ｗｉｎｄｏｗｓ１０と異なるＯＳが採用されたコンピュータ１０に対してプラグアンドプレイ対応のデバイスが接続された場合に、このデバイスに適したドライバをインストールしてロードする点が、上記第１実施形態と主に異なる。したがって、第１実施形態と実質的に同一の構成部分には、同一符号を付し、その説明を省略する。
【００６１】
上記各実施形態では、ＯＳ２１としてＷｉｎｄｏｗｓ１０が採用されたコンピュータ１０に対してプラグアンドプレイ対応のデバイスが接続される場合に、Ｗｉｎｄｏｗｓ  ＯＳ特有の「レジストリ」「ＯＳイベント」を利用して、ドライバ設定処理を実行している。その一方で、例えば、Ｕｎｉｘ系のＯＳ（ＡｎｄｒｏｉｄやＬｉｎｕｘ（登録商標）等）においては、「レジストリ」や「ＯＳイベント」といった仕組みがない場合がある。
【００６２】
そこで、本実施形態におけるドライバ設定処理では、「レジストリ」「ＯＳイベント」を利用できないＯＳが採用されるコンピュータ１０を前提に、専用ドライバ２４のインストール前後のデバイスファイルリストの差分に応じて、専用ドライバ２４がロード可能であるか否かを判断する。
【００６３】
以下、本実施形態におけるデバイス挿抜検知処理及について、図１０に示すフローチャート等を参照して詳述する。なお、上記第１実施形態と同様に、バーコードスキャナＤが図４に例示するように接続された場合を例に説明する。
専用ドライバ２４をインストールするための操作がなされることで、ＣＰＵ１１にてドライバ設定処理が開始されると、まず、ステップＳ３０１に示すデバイスファイルリスト取得処理がなされ、専用ドライバ２４のインストール前に、コンピュータ１０にて利用可能にＨＤＤ１４等に格納されて登録されているデバイスファイルのリストが取得される。
【００６４】
そして、ステップＳ３０３に示す専用ドライバインストール処理（インストールステップ）がなされ、上記記録媒体等の外部から取得した専用ドライバ２４をコンピュータ１０にインストールするための処理が開始される。この専用ドライバ２４のインストールが完了すると、ステップＳ３０５に示すデバイスファイルリスト取得処理がなされ、専用ドライバ２４のインストール後において、コンピュータ１０にて利用可能にＨＤＤ１４等に格納されて登録されているデバイスファイルのリストが取得される。
【００６５】
続いて、ステップＳ３０７の判定処理にて、専用ドライバ２４のインストール前に取得したデバイスファイルリスト（Ｓ３０１）と専用ドライバ２４のインストール後に取得したデバイスファイルリスト（Ｓ３０５）との差分に、専用ドライバ２４に対応するデバイス用の汎用ドライバ２３があるか否かについて判定される。すなわち、本実施形態では、上記ステップＳ３０７の判定処理（判定ステップ）において、インストール前のデバイスファイルリストとインストール後のデバイスファイルリストとの差分に基づいて、専用ドライバ２４に対応するデバイスに関連付けられる汎用ドライバ２３の関連付け情報が存在するか否かについて判定される。
【００６６】
ここで、上記差分に汎用ドライバ２３がない場合には（Ｓ３０７でＮｏ）、ステップＳ３１３に示す専用ドライバロード処理がなされ、バーコードスキャナＤは接続したままの状態で、実際の抜挿がなくても、ソフトウェア的に抜挿を操作することで、専用ドライバ２４がロードされてＲＡＭ１３内に展開される。
【００６７】
一方、専用ドライバ２４のインストール中に静電ノイズ等による影響でバーコードスキャナＤが抜挿されたと誤認されたことから（図４のｔ１６参照）、汎用ドライバ２３がロードされたために（図４のｔ１８参照）、上記差分に汎用ドライバ２３がある場合には、上記ステップＳ３０７にてＹｅｓと判定される。この場合には、デバイスは接続したままの状態で、実際の抜出がなくても、ソフトウェア的に抜出を操作することで（図４のｔ２０参照）、ステップＳ３０９に示すアンロード処理（アンロードステップ）がなされ、汎用ドライバ２３がＲＡＭ１３からアンロードされる（図４のｔ２１参照）。続いて、ステップＳ３１１に示す関連付け情報削除処理（削除ステップ）がなされ、バーコードスキャナＤに関連付けられる汎用ドライバ２３の関連付け情報がデバイスファイルリストから削除される。そして、上記ステップＳ３１３に示す専用ドライバロード処理がなされ、バーコードスキャナＤは接続したままの状態で、実際の抜挿がなくても、ソフトウェア的に抜挿を操作する処理（抜挿ステップ）を行うことで（図４のｔ２３参照）、当該専用ドライバ２４がロードされてＲＡＭ１３内に展開される（図４のｔ２５参照）
【００６８】
以上説明したように、本実施形態に係るドライバの設定方法及びプログラムでは、Ｗｉｎｄｏｗｓ１０と異なるＵｎｉｘ系のＯＳ２１が採用される場合であっても、専用ドライバ２４のインストール前後のデバイスファイルリストの差分に応じて、汎用ドライバ２３がロードされていると判定されると（Ｓ３０７でＹｅｓ）、当該汎用ドライバ２３がアンロード処理（アンロードステップ）によりアンロードされる（Ｓ３０９）。
【００６９】
これにより、上記第１実施形態等と同様に、専用ドライバ２４のインストール中に汎用ドライバ２３がロードされるような状態であっても、意図してインストールした専用ドライバ２４がロード不能となることもないため、プラグアンドプレイ対応のデバイスを接続する際に当該デバイスに適したドライバをロード可能な設定方法及びプログラムを実現することができる。
【００７０】
なお、本発明は上記各実施形態及び変形例等に限定されるものではなく、例えば、以下のように具体化してもよい。
（１）本発明に係るＯＳ２１としては、Ｗｉｎｄｏｗｓ  ＯＳやＵｎｉｘ系のＯＳが採用されることに限らず、他のオペレーティングシステムが採用されてもよい。
【００７１】
（２）上記ドライバ設定処理及びデバイス挿抜検知処理は、図５（Ａ）〜（Ｃ）に例示するように、専用ドライバ２４のインストールからデバイス挿入までを手順を追ってナビゲートするＧＵＩ等とともに実行されることに限らず、例えば、サイレント形式のプログラムにて実装することで夜間等に一斉実行してもよい。
【００７２】
（３）本発明は、コンピュータ１０の通信部１７のＵＳＢポートにプラグアンドプレイ対応のバーコードスキャナＤを接続する際の専用ドライバ２４の設定に利用されることに限らず、他のプロトコルにてプラグアンドプレイ対応のデバイスを接続する際の専用ドライバ２４の設定に利用されてもよい。
【符号の説明】
【００７３】
１０…コンピュータ
１１…ＣＰＵ
１３…ＲＡＭ（メモリ）
２１…ＯＳ（オペレーティングシステム）
２３…汎用ドライバ
２４…専用ドライバ
Ｄ…バーコードスキャナ（デバイス）
【図１】
2020170330.tif 000003
【図２】
2020170330.tif 000004
【図３】
2020170330.tif 000005
【図４】
2020170330.tif 000006
【図５】
2020170330.tif 000007
【図６】
2020170330.tif 000008
【図７】
2020170330.tif 000009
【図８】
2020170330.tif 000010
【図９】
2020170330.tif 000011
【図１０】
2020170330.tif 000012
【図１１】
2020170330.tif 000013
【図１２】
2020170330.tif 000014